Por qué no se muere?
por Maxpowel en dic.04, 2008
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.
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 ![]()






diciembre 4th, 2008 on 3:36 pm
Muy buena explicación, al fin he conseguido entender la diferencia entr kill y kill -9
Un saludo y gracias!!
diciembre 4th, 2008 on 5:28 pm
Me alegro que te haya ayudado, si tienes alguna duda más solo pregunta
diciembre 4th, 2008 on 7:36 pm
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.
diciembre 4th, 2008 on 7:56 pm
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.