Ini adalah pertanyaan yang telah dibahas beberapa kali, tidak hanya di sini, tetapi juga di situs lain dari jaringan pertukaran stack (mis. Bagaimana membuat ssh untuk mematikan proses jarak jauh ketika saya menyela ssh sendiri? ). Namun, saya tidak dapat membuat solusi apa pun berhasil untuk saya.
Saya menjalankan perintah melalui ssh. Setiap kali saya keluar ssh, saya ingin perintah untuk mati juga. Perintah ini adalah daemon bernama ktserver yang berjalan tanpa batas hingga Anda menekan Ctrl-C.
Saya menjalankannya sebagai berikut: ssh -t compute-0-1 ktserverdan, memang, ketika saya menekan Ctrl-C, proses berakhir dengan anggun dan sesi ssh berakhir.
Namun, jika alih-alih menekan Ctrl-C, saya membunuh proses ssh menggunakan killperintah (misalnya, mengirim SIGINT atau SIGHUP), ktserverprosesnya tetap hidup.
Bagaimana saya bisa membuat orang ktservermati selalu independen tentang bagaimana sshdibunuh?
EDIT : Jika, bukannya ktserversaya menjalankan sesuatu yang sama sekali berbeda, seperti gedit, semuanya berfungsi seperti pesona (yaitu gedit mati ketika koneksi mati). Karena itu, mungkin ada sesuatu yang salah dengan proses itu sendiri. Sebagai contoh, saya berpikir bahwa itu mungkin mengabaikan SIGHUP atau SIGINT. Namun, ketika saya menjalankan kill -1 ktserveratau kill -2 ktserver, proses mati seperti yang diharapkan.
EDIT2 : Seperti yang ditunjukkan oleh Mark Plotnick, masalah ini terkait dengan fakta bahwa tidak ada komunikasi yang beredar di saluran ssh. Saya telah mengkonfirmasi dengan menjalankan ssh -t <host> readdan mematikan proses ssh sesudahnya. readmasih hidup dan menendang.
ssh example.com dd ...Pekerjaan saya sudah selesai sampai berjam-jam bahkan setelah sshkoneksi mati karena masalah jaringan. Jika Anda dapat mengubah ktserveruntuk mengambil opsi untuk mengeluarkan sesuatu sesekali, itu mungkin merupakan solusi.
readdi komputer jauh, dan setelah membunuh koneksi ssh, readtidak mati. Sayangnya, saya tidak dapat mengubah ktserver untuk menghasilkan apa pun. Tidak ada solusi kalau begitu?
shopt -s huponexit). Bisakah Anda menguji apakah ini cocok untuk Anda?
kill -9 ktserver?