Поддерживайте работающие процессы при отключении удаленного соединения

У меня есть несколько процессов на сервере, инициированных ssh с моей собственной машины. Сейчас Ubuntu моей машины зависло около трех часов, и я не вижу других вариантов, кроме перезагрузки. Есть ли способ сохранить процессы на сервере живыми? У меня есть root-доступ как к моей машине, так и к серверу.

заранее спасибо

4
задан 23 September 2013 в 00:19

1 ответ

Есть несколько способов архивировать это:

nohup

использовать nohup для запуска команды, так что процесс защищен от зависаний (выход из системы).

Например: nohup command > /path/to/log 2>&1 &

ПРИМЕЧАНИЕ : вышеприведенное запускает команду, защищенную от SIGHUP в фоновом режиме, и перенаправляет stdout / stderr в файл журнала.

setsid и disown

Использование setsid и disown В основном это позволяет процессу запускаться как новый сеанс (init как его родитель), так что выход пользователя из системы не влияет на него. Вы можете прочитать руководство для получения дополнительной информации.

Рекомендуемый подход

Использовать tmux или screen

Запустить команду / приложения в сеансе tmux или screen. Я лично предпочитаю tmux. По сути, он запускает сервер на хосте (удаленный сервер), пока демон НЕ умирает, вся информация о сеансе будет сохранена.

ПРИМЕЧАНИЕ : если вы отключились, просто снова подключитесь к серверу по ssh и запустите tmux attach, чтобы вернуться к сеансам.

0
ответ дан 23 September 2013 в 00:19

Другие вопросы по тегам:

Похожие вопросы: