Pular para o conteúdo
Campanário dos Sinais

/static/campanario/sino/sigchld/

Menu

SIG-009 · Parada e retomada

SIGCHLD

Um filho terminou — o único aviso que os pais podem ignorar sem culpa.

Quando um processo termina — ou para —, o kernel toca este sino para o pai. É o mecanismo por trás de todo shell: o prompt só volta porque o SIGCHLD avisou que o comando acabou.

É um dos raros sinais ignorados por padrão. Mas ignorar não recolhe o defunto: até o pai chamar wait(), o filho fica de zumbi na tabela de processos — Z no ps —, guardando só o código de saída que ninguém veio buscar.

$ cat vigia.sh
#!/bin/bash
trap 'wait; echo "filho recolhido"' CHLD
./tarefa-longa &
sleep 60
$ ./vigia.sh
filho recolhido
O pai que espera não cria zumbis.