Cómo matar procesos zombie en Linux

febrero 14, 2022 , 0 Comments

procesos zombie

Como sabrás los procesos zombie o difuntos en Linux son procesos que han sido completados, pero que siguen apareciendo en la tabla de procesos debido a una falta de correspondencia entre proceso padre-hijo. El proceso padre controla el estado de los procesos hijos mediante la función wait(), y cuando el hijo termina, esa función le indica al padre que se elimine el proceso de la memoria.

Sin embargo, si el proceso padre falla al llamar a dicha función para cualquiera de sus procesos hijos, esos procesos hijo quedarán «vivos» y ocupando recursos del sistema que podrían ser usados por otros procesos, afectando al rendimiento. Por eso es importante hacer abatidas de vez en cuando para ir matando a todos esos procesos zombie. Para hacer esto, se pueden destacar dos formas: por GUI o por el terminal:

Por el terminal

procesos zombie

Para matar los procesos zombie en Linux, primero debes identificar cuáles son esos procesos y después matarlos. Pues bien, esto se podría hacer con herramientas como ps, top, etc. Puedes usar la que más te guste. Por ejemplo, aquí van dos de los comandos que podrías usar para detectar si existen procesos zombie:


top

ps axo stat,ppid,pid,comm | grep -w defunct

En el primer caso, es un comando interactivo que te muestra los procesos y te marcará en la segunda línea (como se puede ver en la imagen) la cantidad de procesos zombie que hay ahora mismo (en esta imagen 11). Además, puedes ir haciendo scroll por la lista de procesos, y en la columna S podrás ver el estado. Si está marcado como Z, entonces es un zombie.

En el segundo caso, simplemente te mostrará una salida con los procesos zombie que tengas en marcha.

Es importante, tanto en un caso como en el otro, fijarse en los PID de los procesos zombie para matarlos con:


sudo kill -9 PID

Debes sustituir PID por el número del proceso en tu caso. Además, si no funciona, es probable que necesites privilegios, por lo que tendrás que usar sudo delante del comando…

A través de la GUI

monitor del sistema, procesos

También puedes hacerlo usando herramientas gráficas, si no tienes demasiada destreza con el terminal y los comandos. Por ejemplo, puedes usar los monitores del sistema, como Monitor del Sistema (System Monitor) o similares. Y aquí también tienes que localizar los procesos zombie primero y luego matarlos:

  1. Abre el Monitor del sistema.
  2. Ve a la pestaña Procesos.
  3. Ahora, con la herramienta de búsqueda (lupa), busca el término zombie.
  4. En los procesos que aparezcan en la lista, haz clic sobre ellos con el botón derecho del ratón y pulsa Matar.

Es importante que te asegures que está mostrando todos los procesos del sistema. Para comprobarlo, ve al menú de configuración del Monitor del Sistema y mira las opciones que están marcadas.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.