На этот вопрос уже есть ответ здесь:
И если да, можно ли каким-то образом сохранить его работоспособность?
(Это не повторяющийся вопрос, так как я не знал, что выход из системы приведет к убить процесс. Может быть, другие тоже этого не делают, поэтому задают неправильный вопрос.
Я бы посоветовал, чтобы ответы содержали ссылку на другой вопрос .)
Да, процесс получит сигнал "Зависания" (SIGHUP
), который обычно не пойман и приводит к завершению процесса. Читать man -a signal
и man
страницы это указывает на.
nohup
команда была разработана для преодоления этой трудности без издержек screen
или tmux
(nohup
был изобретен сначала, назад когда "Зависание" упомянуло модемы). Можно указать файл журнала или позволить nohup
сохранить STDOUT
и STDERR
кому: ./nohup.out
, если это возможно, или $HOME/nohup.out
если нет.
nohup command >$HOME/command.log &
Да, управляет, чтобы Вы запустили, будет остановлен, если Вы выйдете из системы. Но можно запустить их использующий screen
команда:
$ screen command
С этого виртуального экрана можно выйти впоследствии (Ctrl+A, D
), позволяя команде продолжиться, работая.
Можно запустить команду и немедленно отправить ее в виртуальный отдельный экран также:
$ screen -fa -d -m command
Для получения обзора экранных сессий используйте следующую команду:
$ screen -list
There are screens on:
2457.pts-2.myserver (22.10.2018 20:04:35) (Detached)
12596.pts-3.myserver (28.08.2018 22:10:00) (Detached)
4632..myserver (15.07.2018 20:56:55) (Detached)
3 Sockets in /run/screen/S-me.
$
Возвратите сессию на переднем плане, с помощью -r
переключатель, при предоставлении идентификатора сессии:
$ screen -r 2457.pts-2.myserver