Якщо mvбуло розпочато так:
ssh host mv x y
Тоді mvви отримаєте SIGPIPE (і помре), якщо він спробує написати що-небудь до stdout або stderr (наприклад, повідомлення про помилку).
Якщо ви розпочали інтерактивний сеанс, наприклад:
ssh host
І почалося mvз інтерактивної оболонки там, коли головна сторона запущеного псевдотерміналу sshdбуде закрита (після sshзакриття TCP-з'єднання при виході), лідер сеансу, пов'язаний з веденою стороною псевдотерміналу, є віддаленою інтерактивною оболонкою, отримає сигнал SIGHUP (зависнути).
Після отримання цього сигналу снаряди (якщо ви не видали trap '' HUP) зазвичай передають цей сигнал усім процесам у розпочатих завданнях, якщо ви прямо не сказали йому цього (як, наприклад, з disownабо &|в деяких оболонках).
Інші процеси (як-от mv), як правило, загинуть при отриманні цього сигналу, якщо їм не наказали ігнорувати його (використовуючи nohupабо якщо їх батько проігнорував).
Якщо ви видали:
trap '' HUP
Тоді всі завдання, розпочаті після того, як він успадкує його, і ігнорує SIGHUP.
Оболонка не загине від сигналу SIGHUP, що надсилається при відключенні, але вийде в наступний рядок, оскільки його stdin відсутній. Після виходу деякі снаряди відправляють SIGHUP на свої (не відкликані) завдання. Ті, що почалися після trap '' HUPзаповіту, ігнорують його, інші загинуть.
Коротше кажучи, у такому випадку, якщо ви не вжили попередніх заходів, щоб цього не сталося, ви mvпомрете.
Щоб уникнути цього в наступний раз, якщо використовується tcsh, zshабо bash, перш ніж вимкнути машини, натисніть Ctrl-Zпризупинити mv, введіть bgвідновити його в фоновому режимі, і disownв відхрестився його.
Або ви могли використовувати screenабо tmux. Після SIGHUP, вони просто відірвуться від вже відсутнього хост-терміналу, але програми, що працюють у терміналі, який він емулює, продовжуватимуть працювати без голови, і ви можете знову приєднати сеанс до іншого терміналу, щоб побачити, як mvпройшло.
Або використовуйте nohup mvдля того, щоб зробити mvімунітетом SIGHUP і отримати його вихід та помилки, перейдіть у nohup.outфайл, який ви можете перевірити пізніше.
Тепер я не знаю про вашого конкретного хостинг-провайдера, але з деякими, коли ви sshвходите в екземпляр, ви не починаєте там сеанси оболонки, а скоріше приєднуєтесь до консолі, тобто до вже розпочатого сеансу. , і коли ви виходите, ви не припиняєте сеанс, а просто відхиляєтесь від нього. Отже, шкаралупа не вбиває, як і не mv. Якщо це так, ви помітите, що psзапуск звідти дає вам те саме pidдля вашої оболонки протягом двох окремих sshсеансів.