Bagaimana agar program tetap berjalan setelah pemutusan SSH? [duplikat]

15

Kemungkinan Duplikat:
Menjalankan program setelah menutup konsol, setelah program dimulai
Bagaimana saya bisa menggunakan ssh untuk menjalankan perintah pada mesin Unix jarak jauh dan keluar sebelum perintah selesai?

Hai!

Saya ingin menjalankan program dari notebook saya dengan koneksi SSH ke server jarak jauh. Masalahnya adalah saya pulang dengan notebook saya :)

Bagaimana agar program tetap berjalan?

Maks
sumber

Jawaban:

22

'layar' kemungkinan besar adalah apa yang Anda inginkan. Ini memungkinkan Anda untuk memutuskan dan menghubungkan kembali sesuka hati. Setelah Anda memasukkan SSH ke server, jalankan layar sebelum memulai program Anda. Ctrl-a, Ctrl-d akan memutus hubungan Anda (program tetap berlanjut). Saat Anda kembali, 'layar -r' akan menyambung kembali Anda seolah-olah Anda belum pernah pergi.

Anggap saja sebagai VNC atau RDP untuk terminal teks. Cari 'menggunakan layar' untuk banyak tutorial.

Diedit untuk menambahkan: Hari ini saya akan merekomendasikan tmux sebagai gantinya, terutama jika digunakan bersama dengan skrip tmx . Kemampuan untuk membagi panel (vertikal dan horizontal) dan mengubah ukurannya merupakan keuntungan besar di layar.

Chris
sumber
5
Kebetulan, layar akan tetap berjalan jika koneksi Anda habis atau semacamnya saat Anda masih terikat padanya. Beberapa perintah yang berguna: ctrl + a, ctrl + d = lepaskan dari layar, layar -r = pasang kembali ke layar, layar -x = lampirkan ke layar dalam mode bersama (dapat digunakan untuk mengajar dll, dua pengguna dapat berbagi layar yang sama), ctrl + a, esc = masuk ke mode gulir (tekan q untuk keluar lagi). CATATAN: Jika Anda memulai layar dengan mengetik "program layar" itu akan segera meluncurkan program di layar, tetapi jika keluar Anda akan kehilangan buffer. Mengetik "layar" hanya akan memberi Anda terminal persisten.
Chris, juga tnx untuk jawaban yang bermanfaat.
18

nohup adalah perintah yang akan menjalankan perintah lain, dan membuatnya kebal terhadap sinyal "hangup".

Anda menjalankannya sesederhana:

nohup command

tetapi Anda juga harus mengarahkan ulang stdin, stdout dan stderr. Lihat halaman manual untuk info lebih lanjut.

Anda mungkin juga ingin meletakkannya di latar belakang.

Anda juga perlu mengetahui killperintah untuk akhirnya membunuhnya.

Berpikir aneh
sumber
Ya, banyak! sangat mudah))
Ini yang saya gunakan. Sangat sangat mudah. Gunakan teeuntuk mengarahkan ulang stdin, stdout, dan stderr.
Ritwik Bose