Apa yang terjadi pada proses yang berjalan ketika saya kehilangan koneksi jarak jauh ke kotak * nix?

16

Saya kadang-kadang kehilangan koneksi SSH jarak jauh ke VPS saya. Saya menggunakan screenuntuk proses yang berjalan lama, tetapi saya bertanya-tanya apa yang terjadi pada proses yang saya jalankan selain dari yang berjalan dalam screensesi jika saya kehilangan koneksi ke kotak.

Ketika saya membangun kembali koneksi ke kotak, apa yang terjadi pada proses bash dan sshd yang berjalan ketika saya kehilangan koneksi? Hari ini saya kehilangan koneksi berulang kali dan memperhatikan banyak proses bash dan sshd dari biasanya.

Jika ada proses berkeliaran, apakah saya harus membunuh mereka? Bagaimana saya bisa menentukan proses mana yang ditinggalkan dari sesi saya sebelumnya?

Terima kasih atas balasan!

David Marble
sumber

Jawaban:

8

Biasanya proses akan berakhir setelah terputus, tetapi sesi SSH lama bisa menunggu untuk timeout, atau mereka bisa tergantung pada saat keluar , karena kondisi balapan.

Anda mungkin harus mengakhiri sesi lama, meskipun Anda tidak harus melakukannya. Ketik ps auxpada konsol untuk mendaftar proses, lalu kill PIDuntuk setiap sesi ssh hung, di mana PID adalah PID (ID proses) untuk sesi itu. Sesi yang lebih lama dan digantung harus memiliki PID yang lebih rendah daripada sesi baru Anda saat ini.

Jika ada proses jangka panjang yang secara khusus Anda ingin terus berjalan bahkan setelah Anda putuskan, Anda bisa mengawali perintah Anda dengan nohup:

nohup badblocks -nvs /dev/sda &
rampok
sumber
0

Ketika sesi ssh mati, pseudo-tty yang terkait ditutup dan diatur ulang. Biasanya shell dan proses lain yang terkait dengan tty itu terbunuh, karena mereka adalah proses anak dari proses yang menciptakannya. Jika ada proses berkeliaran, mungkin mereka telah di-backgound? Ya, mereka mungkin harus dibunuh - kebersihan di sebelah kesalehan. Mereka memang mengambil beberapa sumber daya - biasanya tidak banyak, tetapi dapat bertambah setelah beberapa saat.

Shannon Nelson
sumber