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ê ?
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:
Signal Value Action Comment
──────────────────────────────────────────────────────────────────────
...
SIGUSR1 30,10,16 Term User-defined signal 1
SIGUSR2 31,12,17 Term User-defined signal 2
SIGUSR1
e SIGUSR2
ambos têm a ação padrão Term
- 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á
strace
a saída em um shell script ...)
{ dd if=/dev/zero of=/dev/null & }; kill -USR1 $!; jobs; sleep 1; jobs
para reproduzir o efeito que você está descrevendo.