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
SIGUSR1e SIGUSR2ambos têm a ação padrão Term- o processo é encerrado. ddregistra 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á
stracea saída em um shell script ...)
{ dd if=/dev/zero of=/dev/null & }; kill -USR1 $!; jobs; sleep 1; jobspara reproduzir o efeito que você está descrevendo.