Jika mv
dimulai sebagai:
ssh host mv x y
Kemudian mv
akan menerima SIGPIPE (dan mati) jika mencoba menulis apa pun ke stdout atau stderr (seperti pesan kesalahan).
Jika Anda memulai sesi interaktif seperti:
ssh host
Dan mulai mv
dari shell interaktif di sana, ketika sisi master terminal semu dimulai dengan sshd
akan ditutup (setelah ssh
menutup koneksi TCP saat keluar), pemimpin sesi terkait dengan sisi budak dari terminal semu, yang adalah shell interaktif jarak jauh, akan menerima sinyal SIGHUP (hang up).
Setelah menerima sinyal itu, shell (kecuali Anda telah mengeluarkan a trap '' HUP
) biasanya meneruskan sinyal itu ke semua proses dalam pekerjaan yang telah mereka mulai, kecuali Anda secara eksplisit mengatakannya untuk tidak (suka dengan disown
atau dengan &|
di beberapa shell).
Proses lain (seperti mv
) biasanya akan mati ketika menerima sinyal itu kecuali mereka telah diperintahkan untuk mengabaikannya (dengan menggunakan nohup
atau jika orangtua mereka mengabaikannya).
Jika Anda telah mengeluarkan:
trap '' HUP
Kemudian semua pekerjaan dimulai setelah itu akan mewarisinya dan akan mengabaikan SIGHUP.
Shell tidak akan mati karena sinyal SIGHUP yang dikirim setelah pemutusan tetapi akan keluar pada prompt berikutnya, karena stdinnya hilang. Saat keluar, beberapa cangkang mengirim SIGHUP ke pekerjaan mereka (tidak diakui). Mereka yang mulai setelah trap '' HUP
kehendak mengabaikannya, yang lain akan mati.
Singkatnya, dalam kasus itu, kecuali Anda telah mengambil tindakan pencegahan sebelumnya sehingga itu tidak terjadi, Anda mv
akan mati.
Untuk menghindarinya lain kali, jika menggunakan tcsh
, zsh
atau bash
, sebelum mematikan mesin, tekan Ctrl-Zuntuk menangguhkan mv
, masuk bg
untuk melanjutkannya di latar belakang, dan disown
untuk menolaknya .
Atau Anda bisa menggunakan screen
atau tmux
. Setelah SIGHUP, mereka hanya akan melepaskan dari terminal host yang sekarang hilang, tetapi aplikasi yang berjalan di terminal yang ditiru akan terus berjalan tanpa kepala dan Anda dapat memasang kembali sesi ke terminal lain nanti untuk melihat bagaimana mv
hasilnya.
Atau gunakan nohup mv
untuk membuat mv
kebal terhadap SIGHUP dan memiliki output dan kesalahan pergi ke nohup.out
file yang dapat Anda periksa nanti.
Sekarang, saya tidak tahu tentang penyedia hosting spesifik Anda, tetapi dengan beberapa, ketika Anda ssh
masuk ke instance, Anda tidak memulai sesi shell di sana melainkan melampirkan ke konsol, yaitu sesi yang sudah dimulai , dan ketika Anda keluar, Anda tidak mengakhiri sesi itu, lepas saja darinya. Jadi, shell tidak terbunuh, juga tidak mv
. Jika itu masalahnya, Anda akan melihat bahwa ps
lari dari sana akan memberi Anda hal yang sama pid
untuk shell Anda di dua ssh
sesi terpisah .