Solusi 1:
Cara terbaik adalah dengan menggunakan screen
(di server) untuk memulai sesi untuk menjalankan perintah dan kemudian memutuskan layar agar tetap berjalan, dan Anda dapat melakukan hal lain, atau hanya memutuskan sambungan dari server. Pilihan lainnya adalah menggunakan nohup
dikombinasikan dengan &
jadi Anda akan memiliki nohup <command> &
Solusi 2:
Anda juga dapat menggunakan disown
jika Anda sudah memulai proses tanpa screen
atau nohup
Solusi 3:
Jawaban yang ada dapat bekerja dengan baik, tetapi saya memerlukan sesuatu untuk BusyBox (sebuah shell dan seperangkat alat untuk perangkat keras minimal seperti router rumahan). Sistem saya tidak memiliki screen
, dtach
, at
, disown
, atau bahkan nohup
! Jadi terima kasih kepada tbc0 di SO (tautan), saya menemukan permata ini. Ini segera kembali tetapi proses server terus berjalan:
ssh myserver 'sleep 100 >&- 2>&- <&- &'
Atau, jika diperlukan beberapa perintah:
ssh myserver '(echo one; sleep 100; echo two; sleep 200) >&- 2>&- <&- &'
Penjelasan:
>&-
- tutup pegangan stdout2>&-
- tutup stderr<&-
- tutup stdin&
- letakkan proses di latar belakang
Ini tidak menggunakan program eksternal dan harus bekerja di ksh, ash, Bourne shell, bash, dll.