Por qué no se muere?

No estoy hablando de ningún enemigo de la libertad (eso no se desea ni a los directivos de apple o microsoft por muy malvados que sean jeje) sino de procesos. Por todo usuario linuxero es bien sabido que cuando quieres matar a un proceso hay que usar el -9 ese junto a la orden kill. ¿No sería mas sencillo usar solo kill y pum, plas, directo a la séptima luna de omicron persei 8? Pues si, pero esque kill no mata procesos.

Con la orden kill simplemente enviamos señales a los programas. Normalmente surge la necesidad de matar un proceso cuando se ha colgado y no responde. Precisamente por eso, porque no responde, con la orden kill (sin el -9) no pasa nada.

Si sencillamente usamos la orden kill, se le mandará al programa la señal SIGTERM (señal 0) que viene a ser pedirle por favor al programa que se cierre. El programa puede hacer caso u obviarlo.

Por ejemplo, cuando vamos a cerrar un editor de texto y éste nos pregunta si queremos guardar los cambios lo que ha sucedido es que se ha enviado la señal SIGTERM al programa, el programa la captura y actúa preguntando al usuario si quiere guardar los cambios. Es como si el sistema operativo llama por teléfono al programa y le dice que se cierre pero cuando el programa peta pues no puede ni descolgar el teléfono.

Usando kill al programa de edición de texto geany

Usando kill al programa de edición de texto geany

Entonces podemos comprender por qué la orden kill no cierra un programa que se ha petado.

Pero podemos hacer que el sistema operativo se remangue y ponga las cosas claras. Cuando mandamos la señal 9 el sistema operativo se encarga personalmente de matar el proceso pero lo hace por las malas. Por eso se pierden los datos que no se han guardado. Existen unas cuantas señales pero las mas usadas son estas dos, la 0 y la 9.

Espero que esta breve y pachanguera explicación ayude a aclarar este concepto a alguien 😉

You may also like...

5 Responses

  1. Himliano dice:

    Muy buena explicación, al fin he conseguido entender la diferencia entr kill y kill -9

    Un saludo y gracias!!

  2. Maxpowel dice:

    Me alegro que te haya ayudado, si tienes alguna duda más solo pregunta

  3. deckerix dice:

    siempre he pensando que kill debería haberse llamado algo así como “signal” porque es lo que realmente hace.. mandar señales. Yo siempre intento matar los procesos con kill -15, si no a lo bestia con kill -9

    Un saludo.

  4. Maxpowel dice:

    Sí, para el que no lo conoce el nombre genera una idea incorrecta. Estoy de acuerdo en que el nombre “signal” hubiera sido más coherente jeje.

  1. 20 diciembre, 2008

    Información Bitacoras.com…

    Si lo deseas, puedes hacer click para valorar este post en Bitacoras.com. Gracias….

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *