Na ausência de qualquer configuração de sinal, SIGTERM
e SIGKILL
são na prática equivalentes, pelo menos da perspectiva do processo eliminado, assim como os outros sinais cuja ação padrão é encerrar um processo, incluindo SIGUSR1
e %código%. Como aponta ilkkachu , o processo pai é informado do sinal que terminou o processo filho (que é como o seu shell pode distinguir entre os sinais e imprimir por exemplo “terminado” v. “sinal definido pelo usuário 1”).
Como mencionado na Wikipedia, SIGUSR2
não pode ser capturado ou ignorado, enquanto SIGKILL
pode; note que isso significa que um processo não precisa instalar um manipulador para que SIGTERM
seja ineficaz, ele pode simplesmente bloqueá-lo ou ignorá-lo (veja SIGTERM
, sighold()
e sigrelse()
).
POSIX como uma seção detalhada da justificativa do tratamento de sinal . A mana sigignore()
documenta os sinais em detalhes também.