GNU/Linux >> Belajar Linux >  >> Linux

Cegah tugas linux yang sedang berjalan dimatikan setelah keluar dari SSH

Jika tugas Anda sudah diluncurkan, sudah terlambat* untuk mempertimbangkan solusi alternatif yang menyisipkan lapisan tambahan di antara ssh Anda session dan shell menjalankan perintah, seperti screen , tmux , byobu , nohup dan sejenisnya.

Jika proses Anda mendukung untuk ditempatkan di latar belakang dan khususnya tidak hang ketika stdout dan stderr tidak dapat ditulisi/ditutup, Anda dapat meletakkannya di latar belakang sebelum keluar dengan Kontrol Z dan bg lalu lepaskan dari shell Anda dengan disown bawaan.

misalnya:

$ ssh localhost
You have new mail.
Last login: Fri Jun  6 11:26:56 2014

$ /bin/sleep 3600    


^Z[1] + Stopped                  /bin/sleep 3600
$ bg
[1] /bin/sleep 3600&
$ jobs
[1] +  Running                 /bin/sleep 3600
$ disown %1
$ exit
Connection to localhost closed.
$ ps -ef|grep sleep
jlliagre 12864     1  0 21:12 ?        00:00:00 /bin/sleep 3600
jlliagre 13056 12477  0 21:13 pts/18   00:00:00 grep sleep
$ 

* Seperti yang dikomentari Bob, sebenarnya ada beberapa cara retas untuk membuat ulang sesi tty di Linux. repty, retty, injcode dan neercs. Tampilan paling canggih adalah reptyr tetapi Anda mungkin memerlukan hak akses root untuk mengaktifkan ptrace untuk meretas proses Anda.


Salah satu solusinya adalah dengan menggunakan layar GNU. Anda dapat memulai screen , jalankan perintah Anda, lalu lepaskan dengan C-a d . Nanti untuk menyambungkan kembali, lakukan screen -r , dan Anda kembali ke sesi sebelumnya.

Manfaat layar lainnya adalah manajemen jendela (sehingga Anda dapat beralih ke shell lain saat perintah Anda berjalan, tanpa memerlukan koneksi SSH baru), dan ini memungkinkan perintah Anda untuk tetap berada di latar depan, baik di sesi saat ini atau nanti.

Edit: Seperti disebutkan dalam komentar, ini hanya akan berfungsi jika Anda ingat untuk memulai screen sebelum menjalankan perintah. Jika perintah sudah berjalan, maka Anda memerlukan solusi @jlliagre.


Linux
  1. Jadwalkan tugas dengan Linux pada perintah

  2. Cara Menemukan Koneksi SSH Aktif di Linux

  3. linux mengeksekusi perintah dari jarak jauh

  1. 4 Cara Agar Perintah Tetap Berjalan Setelah Anda Keluar Dari Sesi SSH

  2. Menjalankan perintah linux dari python

  3. Perintah Linux untuk menunggu server SSH aktif

  1. Perintah SCP Linux – Cara Transfer File SSH dari Jarak Jauh ke Lokal

  2. Cara SSH di Linux dari Android

  3. Cegah Tmux Memulai Di Ssh?