Seu programa Python desfaz nohup
.
nohup
ignora o sinal de desconexão com SIG_IGN
e, em seguida, a cadeia carrega seu programa no mesmo processo.
Seu programa em Python reinicia imediatamente o tratamento de sinal para o sinal de desconexão, instalando seu próprio manipulador de sinal. Esse manipulador verifica uma função interna (que não é muito bem projetada, sendo baseada em algumas suposições incorretas, se é a que eu vi) e decide que o curso apropriado de ação ao receber um sinal de desligamento é imprimir essa mensagem. e sair.
Seu programa em Python por design não é nohup
-able. Em um sistema com uma shell de controle de job e semântica de sessão / job POSIX, você precisa estar disown
ing da tarefa para que a shell nunca saiba sobre ela para enviar um sinal de desligamento a ela em primeiro lugar.
(Mesmo que isso não seja suficiente nos sistemas operacionais systemd. Como as pessoas do sistema fizeram um pouco de orelha de porco em seu mecanismo de sessão de login do espaço do usuário, você também precisa garantir que o mecanismo do systemd sinalize o desligamento do sistema desligar, para sessões de login em cada logout também não está chutando.)