Pertanyaan ini telah datang cukup sebuah banyak ( benar-benar banyak ), tapi aku menemukan jawaban atas secara umum tidak lengkap. Pertanyaan umum adalah "Mengapa saya tidak terbunuh ketika saya keluar / membunuh ssh?", Dan inilah yang saya temukan. Pertanyaan pertama adalah: Seberapa umum informasi berikut? Berikut ini tampaknya berlaku untuk linux Debian modern, tetapi saya kehilangan beberapa bit; dan apa yang perlu diketahui orang lain?
Semua proses anak, backgrounded atau tidak dari shell dibuka melalui koneksi ssh tewas dengan SIGHUP ketika koneksi ssh ditutup hanya jika itu
huponexit
opsi disetel: dijalankanshopt huponexit
untuk melihat apakah ini benar.Jika
huponexit
benar, maka Anda dapat menggunakannohup
ataudisown
untuk memisahkan proses dari shell sehingga tidak terbunuh saat Anda keluar. Atau, jalankan denganscreen
.Jika
huponexit
salah, yang merupakan default pada setidaknya beberapa linux hari ini, maka pekerjaan yang di background tidak akan dimatikan pada logout normal.Tetapi bahkan jika
huponexit
itu salah, maka jika koneksi ssh terbunuh , atau jatuh (berbeda dari logout normal), maka proses latar belakang akan tetap terbunuh. Ini dapat dihindari olehdisown
ataunohup
seperti pada (2).Ada beberapa perbedaan antara (a) proses yang proses induknya adalah terminal dan (b) proses yang memiliki stdin, stdout, atau stderr yang terhubung ke terminal . Saya tidak tahu apa yang terjadi pada proses yang (a) dan bukan (b), atau sebaliknya.
Pertanyaan terakhir: Bagaimana saya bisa menghindari perilaku (3)? Dengan kata lain, secara default di proses latar Debian berjalan dengan gembira sendiri setelah logout tetapi tidak setelah koneksi ssh terbunuh. Saya ingin hal yang sama terjadi pada proses terlepas dari apakah koneksi ditutup secara normal atau terbunuh. Atau, apakah ini ide yang buruk?
Sunting: Cara lain yang penting untuk menjaga agar pekerjaan tidak terbunuh, yang berfungsi (?) Adalah menjalankannya melalui layar . Tapi, pertanyaannya lebih pada pemahaman ketika hal-hal terbunuh dan ketika tidak: kadang-kadang orang ingin pekerjaan dibunuh saat logout, misalnya.
Utas lainnya: - Klarifikasi sinyal (sighup), pekerjaan, dan terminal pengontrol - /server/117152/do-background-processes-get-a-sighup-when-logging-off - Lanjutkan SSH tugas / pekerjaan latar belakang saat menutup SSH - Apakah pekerjaan yang dimasukkan di latar belakang terus berjalan setelah sesi SSH ditutup? - Mencegah proses latar belakang yang sudah berjalan dihentikan setelah menutup klien SSH - Bagaimana saya bisa memulai proses melalui SSH sehingga akan terus berjalan setelah saya lepaskan? - Tidak dapat menjaga pekerjaan jarak jauh berjalan di OS X - Tutup koneksi SSH