Что произойдет с продолжением операции, если мы сделаем ssh, а затем отключим?

Я перемещаю один каталог в другой с помощью команды mv.

Тем не менее, я был вынужден отключить свой компьютер, что означает потерю связи с сервером.

Что случилось с командой mv?

Примечание. После переустановки я увидел, что все файлы были правильно перемещены, хотя я был уверен, что он не был перемещен, когда я закрыл соединение. Кажется, что mv продолжал работать.

Это машина ssh to centosh в облачном сервере steadfast.net.

One Solution collect form web for “Что произойдет с продолжением операции, если мы сделаем ssh, а затем отключим?”

Если mv был запущен как:

 ssh host mv xy 

Затем 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 чтобы возобновить его в фоновом режиме, и отменить его.

Или вы можете использовать screen или tmux . После SIGHUP они будут просто отсоединяться от своего уже запущенного хост-терминала, но приложения, работающие на эмуляторе терминала, будут продолжать работать без головок, и вы можете снова подключить сеанс к другому терминалу, чтобы посмотреть, как mv пошел.

Или используйте nohup mv чтобы сделать mv невосприимчивым к SIGHUP, и его вывод и ошибки попадают в файл nohup.out который вы можете проверить позже.

Теперь я не знаю о вашем конкретном хостинг-провайдере, но с некоторыми, когда вы ssh в экземпляр, вы не запускаете сеансы оболочки там, а скорее присоединяетесь к консоли, то есть к сеансу, который был запущен уже, и когда вы выходите, вы не завершаете этот сеанс, просто отключайтесь от него. Итак, оболочка не убивает, а mv . Если это так, вы заметите, что запуск ps оттуда даст вам тот же pid для вашей оболочки через два отдельных сеанса ssh .

  • Копирование файлов с одного сервера на другой сервер без запроса пароля
  • SSH медленный после настройки TCP Wrappers
  • Почему мой сеанс winscp не отображается в Linux?
  • Ошибка аутентификации открытого ключа ssh
  • SSH Основные проблемы с Debian
  • Сколько пользователей поддерживает поддержку Linux в одно и то же время через SSH?
  • Доступ к Linux с неинтерактивной учетной записью
  • Иностранные символы не отображаются в SSH
  • Как инсталлировать IP на основе корневого входа SSH
  • Не удается SSH после переключения на маршрутизатор Netgear
  • Есть ли способ поддерживать связь ssh-agent на разных экранах?
  • Interesting Posts

    Почему для настройки статического IP-адреса нужны «сетевые», «сетевые», «шлюзовые» и «DNS-серверы имен»?

    Мониторинг автоматического обнаружения Ubuntu

    Головоломка для блокировки Linux

    Ubuntu Software Raid5 – / dev устройства изменены, будет mdadm рейд перерыв

    проблема при загрузке Linux-сервера: слишком много уровней символических ссылок

    Как оставить только заданные символы в файле?

    не может видеть раздел диска / dev / sdb в linux

    Интерфейс USB USB работает, а затем случайным образом падает до перезапуска

    USB-мышь не работает на Samsung ChromeBook 3

    Портативные двоичные файлы и путь libexec

    Почему уровень фрагментации настолько велик в файлах, которые содержат другие файловые системы?

    одновременно совместно использовать / dev / videoX с несколькими приложениями?

    Команды bash, похоже, не работают в .xinitrc

    Uptime и кто -b показывают разные времена, когда система загружалась последним в Linux

    Повторное использование данных о трубах для разных команд

    Linux и Unix - лучшая ОС в мире.