Comportamento do programa ao matar -HUP é recebido?

22

Existe uma maneira de descobrir o que o programa fará quando receber o sinal de kill HUP?
  Sem simplesmente executar o comando ofc: D

Por exemplo,
killall -HUP pppd irá reiniciar o pppd
killall -HUP firefox apenas matará o firefox

    
por bbaja42 25.06.2011 / 00:42

2 respostas

35

Leia sua documentação. Esse é o único caminho. Como Keith já escreveu , o significado original O SIGHUP era que o usuário havia perdido o acesso ao programa e, portanto, programas interativos deveriam morrer. Daemons - programas que não interagem diretamente com o usuário - não precisam desse comportamento e, em vez disso, muitas vezes recarregue seus arquivos de configuração quando eles receberem SIGHUP. Mas estas são apenas convenções.

Se você tiver a fonte, também poderá ler isso. Ou se você tiver apenas o binário, tente desmontá-lo, procure por sigaction chamadas que configuram um manipulador de sinal para SIGHUP e tente descobrir o que esses manipuladores de sinais estão fazendo. Será mais fácil organizar o envio do 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: ignorando-o, executando a ação padrão ou executando um manipulador personalizado. Muitos unices permitem que você veja a máscara de sinal de um processo com ps , por ex. com ps s no Linux. Isso pode dizer se o processo está ignorando o sinal ou morrerá instantaneamente no SIGHUP, mas se o processo tiver definido um manipulador, você não poderá dizer o que o manipulador faz.

    
por 25.06.2011 / 01:22
16

A ação padrão é finalizar o processo no SIGHUP. Veja man 7 signal para mais detalhes. Mas os programas podem prendê-lo e fazer o que quiserem. Como os processos daemon nunca devem sair, eles geralmente usam o SIGHUP para outras finalidades, como reinicializar-se (como o pppd faz). O Firefox mantém a ação padrão.

    
por 25.06.2011 / 00:52

Tags