Existe uma maneira de descobrir o que o programa fará quando receber o sinal de morte HUP?
Sem simplesmente executar o comando ofc: D
Por exemplo,
killall -HUP pppd
reiniciará o pppd
killall -HUP firefox
matará o firefox
Leia a documentação. Essa é a única maneira. Como Keith já escreveu , o significado original de SIGHUP era que o usuário havia perdido o acesso ao programa e, portanto, os programas interativos deveriam morrer. Daemons - programas que não interagem diretamente com o usuário - não precisam desse comportamento e, em vez disso, frequentemente recarregam seus arquivos de configuração quando recebem o SIGHUP. Mas estas são apenas convenções.
Se você tem a fonte, também pode ler isso. Ou, se você possui apenas o binário, pode tentar desmontá-lo, procurar sigaction
chamadas que configuram um manipulador de sinal SIGHUP
e tentar descobrir o que esses manipuladores de sinal estão fazendo. Será mais fácil organizar para não enviar SIGHUP para esse programa em primeiro lugar.
A qualquer momento, um determinado processo está em um dos três estados em relação a um sinal específico: ignorá-lo, executar a ação padrão ou executar um manipulador personalizado. Muitos departamentos permitem que você veja a máscara de sinal de um processo com ps
, por exemplo, ps s
no Linux. Isso pode lhe dizer se o processo está ignorando o sinal ou vai morrer instantaneamente no SIGHUP, mas se o processo configurou um manipulador, você não pode dizer o que o manipulador faz.
A ação padrão é finalizar o processo no SIGHUP. Veja
man 7 signal
para mais detalhes. Mas os programas podem capturá-lo e fazer o que quiserem. Como os processos daemon nunca devem sair, eles geralmente usam o SIGHUP para outros fins, como reinicializar a si mesmos (como o pppd). O Firefox mantém a ação padrão.fonte