¿SIGQUIT es lo mismo que SIGTERM?

13

Estoy aprendiendo CentOS / RHEL y actualmente estoy haciendo algunas cosas sobre la gestión de procesos.

El libro de RHCSA que estoy leyendo describe la ejecución kill 1234como envío de SIGQUIT. Siempre pensé que el comando kill sin agregar un interruptor para el tipo de señal debería ser predeterminadokill -15

SIGTERM es kill -15y SIGKILL es kill -9, ¿verdad?

¿CentOS / RHEL utiliza un método ligeramente diferente kill -15o simplemente me he equivocado?

EDITAR: kill -lproporciona SIGQUIT como kill -3y parece estar asociado con el uso del teclado para finalizar un proceso. man 7 signaltambién indica que SIGQUIT es kill -3, por lo que solo puedo suponer que mi libro está equivocado al afirmar que SIGQUIT es kill -15predeterminado.

bitofagoob
fuente

Respuestas:

13

No, no son lo mismo. La acción predeterminada para ambos es terminar el proceso, pero SIGQUITtambién vuelca el núcleo. Consulte, por ejemplo, la página de manual de Linuxsignal(7) . killpor defecto envía SIGTERM, así que solo puedo imaginar que la mención de que SIGQUIT es predeterminado es de hecho un error. Ese valor predeterminado está en POSIX , y también lo están los números de SIGTERM, SIGKILL y SIGQUIT.

ilkkachu
fuente
1
Si. Creo que el libro está equivocado porque también enumera SIGQUIT como -15. La señal -15 es una forma tan establecida de terminar un proceso en el mundo Linux que no hay duda de que es un error de imprenta. Marcaré su respuesta como correcta. Gracias por ampliar lo que hace SIGQUIT.
bitofagoob
1

Hay dos comandos kill, uno en procps y otro en shell. Ambos usan SIGTERM como predeterminado. Para procps kill, la ayuda de comandos, la página de manual y la fuente de kill (skill.c línea 724 en la última rama maestra) dicen SIGTERM, lo cual es bueno saber que es consistente.

Una cosa para recordar acerca de las señales es que una vez que comienzas a pasar el "grupo habitual" y usas sistemas un poco más diferentes a un sistema Linux x86, puedes encontrar que las señales no están allí o tienen números diferentes. procps (y probablemente muchos otros programas) hornea los números en tiempo de compilación (esencialmente lo que sea que tenga el archivo de inclusión, busque signum.h).

No es algo de qué preocuparse para SIGTERM, como dice @ilkkachu, está en POSIX.

Craig Small
fuente
La página de manual de skill dice que skill y snice son obsoletos. Me pregunto por qué no se han eliminado del espacio de usuario. Información interesante, de todos modos. Gracias.
bitofagoob