Ваша программа на Python отменяется nohup
.
nohup
игнорирует сигнал зависания с помощью SIG_IGN
и затем загружает вашу программу в том же процессе.
Ваша программа Python быстро сбрасывает обработку сигнала для сигнала зависания, устанавливая свой собственный обработчик сигнала. Этот обработчик проверяет внутреннюю функцию (которая не очень хорошо спроектирована, основываясь на некоторых ошибочных предположениях, если это та, которую я видел) и решает, что надлежащий порядок действий при получении сигнала зависания - распечатать это сообщение. и выход.
Ваша программа на Python по nohup
своему замыслу невозможна. В системе с оболочкой управления заданиями и семантикой сеансов / заданий POSIX вы должны выполнять disown
задание, чтобы оболочка никогда не знала об этом, чтобы сначала отправить ему сигнал зависания.
(Даже этого недостаточно в операционных системах systemd. Поскольку люди, работающие с systemd, чуть-чуть ухватились за ухватку своего механизма сеанса входа в пользовательское пространство, вам также необходимо убедиться, что механизм systemd, который сигнализирует об отключении системы, а не зависает, для сеансы входа в систему при каждом выходе из системы также не включаются.)
дальнейшее чтение
tmux
и игнорируюnohup
или полностью отрекаюсь от фоновой задачи.