Por que o SIGTERM é capaz de matar o sono? [duplicado]

2

Eu li que o sono não aguenta nenhum SINAL. Então, parece-me que quando eu envio SIGTERM para ele, ele deve ignorá-lo.

sleep 10000 &
26322
kill -s SIGTERM 26322
[1]+  Exited             sleep 1000 

Por que o sono é morto? Afinal, ele não instala nenhum manipulador de sinal.

    
por Spring fancy 11.03.2018 / 20:24

1 resposta

1

Um programa que não instala um manipulador de sinais ou ignora explicitamente sinais tomará a ação padrão se nada mais for mencionado.

A ação padrão ao receber o sinal TERM é sair do processo.

Para a utilidade sleep em particular, o único sinal explicitamente mencionado na especificação POSIX é o sinal ALRM , que fará com que o processo saia com um status de saída zero ("sucesso"). sleep também pode escolher ignorar ALRM ou executar a ação padrão. Para todos os outros sinais, a ação padrão será tomada.

Veja a documentação do POSIX para o utilitário sleep .

    
por 11.03.2018 / 20:34