Saya menjalankan perintah di bawah ini, dan memonitor file output di sistem lain:
ssh $ip_address 'for n in 1 2 3 4 5; do sleep 10; echo $n >>/tmp/count; done'
Jika saya mematikan perintah ssh menggunakan ^C
atau dengan hanya membunuh terminal saya login, saya akan mengharapkan perintah jarak jauh untuk mengakhiri juga. Ini tidak terjadi, meskipun: /tmp/count
dapatkan semua angka 1-5 terlepas, dan ps -ejH
menunjukkan cangkang dan sleep
anaknya terus berjalan.
Apakah ini perilaku yang diharapkan, dan apakah itu didokumentasikan di mana saja? Bisakah saya menonaktifkannya? Dari membaca sekitar, saya diharapkan untuk secara eksplisit mengaktifkan perilaku semacam ini dengan nohup, bukan untuk itu menjadi default.
Saya telah melihat-lihat halaman manual untuk ssh dan sshd, tetapi tidak menemukan sesuatu yang jelas, dan Google menunjuk saya pada instruksi untuk mengaktifkan perilaku ini, bukan untuk mematikannya.
Saya menjalankan Red Hat Enterprise Linux 6.2, dengan login root dan bash shell di kedua sistem.
-tt
sebagai ganti-t
jika ssh itu sendiri tidak memiliki alokasi tty. SSH tidak akan mendapatkan tty yang dialokasikan jika ssh mendapatkan latar belakang segera setelah pemanggilan melalui opsi seperti-f
atau-n
.