
Así es como creo que funcionan las señales de Linux:
Cada proceso tiene un controlador de señal predeterminado para cada señal, el controlador de señal predeterminado de algunas señales finaliza el proceso, mientras que el controlador de señal predeterminado de otras señales simplemente ignora la señal, etc.
La siguiente tabla muestra todas las acciones que puede realizar un controlador de señales predeterminado (esta tabla es de estedocumentación):
Término La acción predeterminada es finalizar el proceso.
Ignición La acción predeterminada es ignorar la señal.
Centro La acción predeterminada es finalizar el proceso y volcar el núcleo (ver núcleo (5)).
Detener La acción predeterminada es detener el proceso.
continuación La acción predeterminada es continuar el proceso si actualmente está detenido.
Puede anular el controlador de señal predeterminado con su propio controlador de señal usandoseñal()(que creo que está en desuso) osigaction().
¿Estoy en lo cierto hasta ahora?
Ahora mi pregunta es: ¿Hay algunas señales que no se pueden anular con su controlador de señales predeterminado?
Respuesta1
Ambas páginas de manual que vinculó mencionan las señales cuyos controladores no se pueden anular. Ensignal(2)
:
Las señales
SIGKILL
ySIGSTOP
no pueden ser captadas ni ignoradas.
En sigaction(2)
:
firmarespecifica la señal y puede ser cualquier señal válida excepto
SIGKILL
ySIGSTOP
.