Seu programa Python desfaz nohup
.
nohup
ignora o sinal de desligamento SIG_IGN
e carrega em cadeia seu programa no mesmo processo.
Seu programa Python redefine prontamente a manipulação do sinal para o sinal hangup, instalando seu próprio manipulador de sinais. Esse manipulador verifica uma função interna (que não foi projetada muito bem, baseando-se em algumas suposições falhas, se é a que eu já vi) e decide que o curso de ação apropriado ao receber um sinal de interrupção é imprimir essa mensagem e saia.
Seu programa Python por design não nohup
pode ser ativado. Em um sistema com um shell de controle de trabalho e semântica de sessão / trabalho POSIX, você precisa estar disown
executando o trabalho para que o shell nunca saiba sobre o envio de um sinal de interrupção em primeiro lugar.
(Mesmo que isso não seja suficiente nos sistemas operacionais systemd. Como as pessoas do systemd fizeram um pouco do ouvido de seu mecanismo de sessão de logon no espaço do usuário, também é necessário garantir que o mecanismo do systemd sinalize o desligamento do sistema, em vez de interromper, para as sessões de login em cada logout também não estão funcionando.)
Leitura adicional
tmux
e ignoronohup
ou desonesto ou a tarefa em segundo plano completamente.