Saya ssh
masuk ke server dan saya memulai skrip Python yang akan memakan waktu sekitar. 24 jam untuk menyelesaikan. Bagaimana jika koneksi internet saya mati di tengah? Apakah itu akan menghentikan perintah?
Apakah ada cara untuk menjalankan perintah saya yang sudah berjalan lama dengan cara yang tidak terputus oleh koneksi lokal dan saya bisa terus melihat hasilnya setelah saya login ssh
lagi?
screen -r
akan menghubungkan Anda kembali.Anda juga dapat menggunakan
disown
jika Anda sudah memulai proses tanpascreen
ataunohup
sumber
Jawaban yang ada dapat bekerja dengan baik, tetapi saya membutuhkan sesuatu untuk BusyBox (shell dan seperangkat alat untuk perangkat keras minimal seperti router rumah). Sistem saya tidak memiliki
screen
,dtach
,at
,disown
, atau bahkannohup
! Jadi terima kasih kepada tbc0 pada SO ( tautan ), saya menemukan permata ini. Segera kembali tetapi proses server terus berjalan:Atau, jika diperlukan beberapa perintah:
Penjelasan:
>&-
- tutup stdout handle2>&-
- tutup stderr<&-
- tutup stdin&
- Menempatkan proses di latar belakangIni tidak menggunakan program eksternal dan harus bekerja di ksh, ash, Bourne shell, bash, dll.
sumber
Jika Anda melatar belakangi suatu proses & menutup sesi Anda, proses tersebut akan diadopsi oleh init (PID 1).
Jika saya memiliki sesi dan lakukan:
dan buka sesi lain dan jalankan:
Proses saya masih berjalan, dan kami melihat bahwa proses induknya sekarang 1 (init).
Atau Anda dapat mengatur skrip seperti layaknya daemon. Pencarian cepat menemukan tautan yang tampaknya bermanfaat ini: http://onlamp.com/python/pythoncook2/solution.csp?day=1 . Jika Anda ingin mengambil pendekatan itu.
sumber