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