Этот вопрос возник довольно много (действительно много), но я нахожу ответы, как правило, неполными. Общий вопрос: «Почему моя работа не убивается, когда я выхожу / убиваю ssh?«И вот что я нашел. Первый вопрос: насколько общая информация следующая? Кажется, что следующее верно для современного Debian linux, но я упускаю некоторые моменты; и что нужно знать другим?
- Все дочерние процессы, фоновые или нет оболочки, открытой через ssh-соединение, уничтожаются с помощью SIGHUP, когда ssh-соединение закрывается, только если установлена опция - huponexit: запустите- shopt huponexitчтобы проверить, верно ли это.
- Если - huponexitимеет значение true, то вы можете использовать- nohupили- disownчтобы отделить процесс от оболочки, чтобы он не был убит при выходе. Или запустить вещи с- screen.
- Если - huponexitимеет значение false, что является значением по умолчанию, по крайней мере, в некоторых linux в наши дни, то фоновые задания не будут уничтожены при обычном выходе из системы.
- Но даже если - huponexitложно, то если соединение SSH убивает, или капли (различные чем нормальный выход из системы), то фоновые процессы будут еще убить. Этого можно избежать с помощью- disownили- nohupкак в (2).
- Существует некоторое различие между (a) процессами, родительский процесс которых является терминалом, и (b) процессами, к которым подключен stdin, stdout или stderr. Я не знаю, что происходит с процессами, которые (а), а не (б), или наоборот. 
Последний вопрос: как я могу избежать поведения (3)? Другими словами, по умолчанию в фоновых процессах Debian весело запускаются сами после выхода из системы, но не после разрыва соединения ssh. Мне бы хотелось, чтобы одно и то же происходило с процессами независимо от того, было ли соединение нормально закрыто или разорвано. Или это плохая идея?
Редактировать: Другой, важный способ сохранить рабочие места убитых, который работает (?) в любом случае это запустить их через экран. Но вопрос больше в том, чтобы понять, когда что-то убивают, а когда нет: иногда люди хотят, чтобы рабочие места были убиты, например, при выходе из системы.
Дополнительные темы:- Разъяснение сигналов (sighup), заданий и управляющего терминала - https://serverfault.com/questions/117152/do-background-processes-get-a-sighup-when-logging-off - Продолжить SSH фоновые задачи / задания при закрытии SSH - Будет ли задание, помещенное в фоновом режиме, продолжать работать после закрытия сеанса SSH? - Предотвратить остановку уже запущенного фонового процесса после закрытия клиента SSH. - Как я могу запустить процесс через SSH, чтобы он продолжал выполняться после моего отключения? - Невозможно сохранить удаленную работу на OS X - Закрыть SSH соединение
