Bagaimana saya bisa menggunakan ssh untuk menjalankan perintah pada mesin Unix dan keluar sebelum perintah selesai?
Misalnya, jika saya mengetik
ssh localhost 'sleep 60 &'
ssh menggantung di terminal saya sampai tidur selesai, meskipun tidur dijalankan di latar belakang.
&
luar dari tanda kutip.Jawaban:
SSH memiliki sakelar -f yang melakukan persis sama dengan menggunakan nohup pada klien Anda tetapi memungkinkan ssh meminta kata sandi. Gunakan seperti itu:
Tetapi : SSH akan tetap hidup di latar belakang, jadi jika Anda mematikan klien sebelum perintah di server selesai, itu akan dibatalkan. Jika Anda ingin koneksi ssh ditutup setelah menjalankan perintah, Anda dapat menggunakan layar di sisi server:
sumber
Gunakan pengalihan nohup, stdout / stderr, dan jalankan perintah di latar belakang:
Sunting: Atau lebih baik lagi, cukup gunakan parameter ssh's -f:
sumber
&>/dev/null
.Atau setelah login menggunakan
ssh
, mulaiscreen
jika Anda mungkin ingin kembali lagi nanti, untuk melihat progres atau output.sumber