У меня есть несколько процессов на сервере, инициированных ssh с моей собственной машины. Сейчас Ubuntu моей машины зависло около трех часов, и я не вижу других вариантов, кроме перезагрузки. Есть ли способ сохранить процессы на сервере живыми? У меня есть root-доступ как к моей машине, так и к серверу.
заранее спасибо
Есть несколько способов архивировать это:
использовать nohup
для запуска команды, так что процесс защищен от зависаний (выход из системы).
Например: nohup command > /path/to/log 2>&1 &
ПРИМЕЧАНИЕ : вышеприведенное запускает команду, защищенную от SIGHUP в фоновом режиме, и перенаправляет stdout / stderr в файл журнала.
Использование setsid
и disown
В основном это позволяет процессу запускаться как новый сеанс (init как его родитель), так что выход пользователя из системы не влияет на него. Вы можете прочитать руководство для получения дополнительной информации.
Использовать tmux
или screen
Запустить команду / приложения в сеансе tmux
или screen
. Я лично предпочитаю tmux. По сути, он запускает сервер на хосте (удаленный сервер), пока демон НЕ умирает, вся информация о сеансе будет сохранена.
ПРИМЕЧАНИЕ : если вы отключились, просто снова подключитесь к серверу по ssh и запустите
tmux attach
, чтобы вернуться к сеансам.