Metode terbaik adalah memulai proses dalam terminal multiplexer. Atau Anda dapat membuat proses tidak menerima sinyal HUP.
Sebuah multiplexer terminal menyediakan "virtual" terminal yang berjalan independen dari "nyata" terminal (sebenarnya semua terminal saat ini adalah "virtual" tapi itu topik lain untuk hari lain). Terminal virtual akan tetap berjalan bahkan jika terminal Anda yang sebenarnya ditutup dengan sesi ssh Anda.
Semua proses yang dimulai dari terminal virtual akan terus berjalan dengan terminal virtual itu. Ketika Anda menyambung kembali ke server Anda dapat menyambung kembali ke terminal virtual dan semuanya akan seolah-olah tidak ada yang terjadi, selain waktu yang berlalu.
Dua multiplexer terminal yang populer adalah layar dan tmux .
Layar memiliki kurva belajar yang curam. Berikut ini adalah tutorial yang bagus dengan diagram yang menjelaskan konsep: http://www.ibm.com/developerworks/aix/library/au-gnu_screen/
The HUP sinyal (atau SIGHUP) dikirim oleh terminal untuk semua proses anak ketika terminal ditutup. Tindakan umum setelah menerima SIGHUP adalah untuk mengakhiri. Jadi ketika sesi ssh Anda terputus, semua proses Anda akan berakhir. Untuk menghindari ini, Anda dapat membuat proses Anda tidak menerima SIGHUP.
Dua metode mudah untuk melakukannya adalah nohup
dan disown
.
Untuk informasi lebih lanjut tentang bagaimana nohup
dan cara disown
kerjanya, baca pertanyaan dan jawaban ini: https://unix.stackexchange.com/questions/3886/difference-between-nohup-disown-and
Catatan: meskipun proses akan tetap berjalan Anda tidak dapat lagi berinteraksi dengan mereka karena mereka tidak lagi melekat pada terminal apa pun. Metode ini terutama berguna untuk proses batch yang berjalan lama yang, setelah dimulai, tidak lagi memerlukan input pengguna.
screen
memberi Anda lebih banyak opsi, tetapi jika Anda menggunakanauthorized_keys
untuk memungkinkan orang menjalankan skrip dari jarak jauhssh
,nohup
opsinya adalah cara sederhana yang bagus untuk skrip untuk memulai proses yang lebih lama darissh
sesi yang digunakan untuk memulai mereka .