Fiquei surpreso com este comentário em outra pergunta:
Enviar dd o sinal USR1 muito cedo após o início (ou seja, em um script do bash, a linha depois de iniciada) de fato o encerrará
Alguém pode explicar o porquê ?
Fiquei surpreso com este comentário em outra pergunta:
Enviar dd o sinal USR1 muito cedo após o início (ou seja, em um script do bash, a linha depois de iniciada) de fato o encerrará
Alguém pode explicar o porquê ?
{ dd if=/dev/zero of=/dev/null & }; kill -USR1 $!; jobs; sleep 1; jobs
para reproduzir o efeito que você está descrevendo.Respostas:
Cada sinal tem uma "disposição padrão" - o que um processo faz por padrão quando recebe esse sinal. Há uma tabela na
signal(7)
página de manual listando-os:SIGUSR1
eSIGUSR2
ambos têm a ação padrãoTerm
- o processo é encerrado.dd
registra um manipulador para interceptar o sinal e fazer algo útil com ele, mas se você sinalizar muito rapidamente, ainda não teve tempo de registrar esse manipulador, portanto, a ação padrão ocorreráfonte
strace
a saída em um shell script ...)