Existem alguns sinais que você não pode substituir o manipulador de sinal padrão?

Existem alguns sinais que você não pode substituir o manipulador de sinal padrão?

É assim que acho que os sinais do Linux funcionam:

Cada processo tem um manipulador de sinal padrão para cada sinal, o manipulador de sinal padrão de alguns sinais encerra o processo, enquanto o manipulador de sinal padrão de outros sinais simplesmente ignora o sinal, etc.

A tabela a seguir mostra todas as ações que um manipulador de sinal padrão pode realizar (esta tabela é destedocumentação):

Prazo A ação padrão é encerrar o processo.

Igna A ação padrão é ignorar o sinal.

Essencial A ação padrão é encerrar o processo e despejar o núcleo (consulte core(5)).

Parar A ação padrão é interromper o processo.

Cont. A ação padrão é continuar o processo se ele estiver interrompido no momento.

Você pode substituir o manipulador de sinal padrão por seu próprio manipulador de sinal usandosinal()(que eu acho que está obsoleto) ousigaction().

Estou correto até agora?

Agora, minha pergunta é: existem alguns sinais que você não pode substituir pelo manipulador de sinais padrão?

Responder1

Ambas as páginas de manual que você vinculou mencionam os sinais cujos manipuladores não podem ser substituídos. Emsignal(2):

Os sinais SIGKILLe SIGSTOPnão podem ser capturados ou ignorados.

Em sigaction(2):

sinalespecifica o sinal e pode ser qualquer sinal válido, exceto SIGKILLe SIGSTOP.

informação relacionada