logo linux

La verdadera razón para no usar SIGKILL

En Linux existen varias formas de cerrar los programas: está la forma suave y luego está SIGKILL. Daniel Stori ha dibujado una viñeta sobre esta señal POSIX.

SIGTERM es una señal que se emplea en sistemas Unix-like como Linux para mandar cerrar un programa. Con este método se hace una petición de cerrado, de forma que el programa pueda realizar las tareas oportunas antes de finalizar su ejecución.

Por otra parte tenemos SIGKILL que cierra el programa incondicionalmente. Esta orden resulta útil cuando el programa ha dejado de responder completamente pero al usarla, todo el trabajo que estuviéramos haciendo en dicho programa se perderá.

Daniel Stori ha dibujado una viñeta en la que se explica de aquella forma las diferencias entre ambas señales. La traducción de cada una se encuentra más abajo:

dont sigkill

  1. Este es Bob. Bob es un proceso de Linux.
    – ¡Hola!

2. Como cualquier proceso, Bob tiene sus hilos con los que comparte contexto, memorias y amor.

3. Y como todos los procesos, inevitablemente en algún momento será matado.
Cuando graciosamente matamos un proceso con un suave SIGTERM…

4. …le damos la oportunidad de hablar con sus hijos sobre ello. Así, los hijos finalizan sus tareas…

5. …y se dicen adiós los unos a los otros.
¡Esa es la vida de un proceso!

6. Por otra parte, cuando matamos brutalmente a un proceso con una SIGKILL, evitamos que terminen su trabajo y diga adiós…

7. …¡y eso es tan TRISTE!
– ¡¡PAPÁ!!

8. Así que, por favor, NO uses SIGKILL. Da a los hijos la oportunidad de abandonar el kernel en paz.
Sé bueno.
– Papá, ¿a dónde vamos?
– Papá, ¿dónde estás?

La viñeta original se puede visitar en Tunroff.us y se encuentra bajo licencia Creative Commons by-nc-nd.