Linux 101: ¿Qué son los procesos zombies?

Los procesos zombis no deberían ser un problema en su sistema. Pero en la remota posibilidad de que surjan, debe saber cómo cuidarlos. Jack Wallen le muestra cómo.

Ilustración: Lisa Hornung / TechRepublic

Cuando piensas en zombis, tu mente probablemente viaja por un camino bastante romeroiano. Necrófagos tambaleantes que no quieren nada más que abrirte el cráneo y comer tu carne de pensamiento.

Pero dentro del reino de Linux, los zombis son una criatura completamente diferente. Algo así como.

VER: 5 distribuciones de servidor Linux que debería usar (TechRepublic Premium)

En la plataforma Linux, un zombi es un proceso muerto restante que no se ha limpiado o no se ha limpiado correctamente. Un zombi es creado por programas que se bloquean o no se codificaron adecuadamente para manejar la limpieza de un bloqueo o una salida.

Técnicamente hablando, cuando un proceso muere, el descriptor del proceso permanece en la memoria y se etiqueta como EXIT_ZOMBIE. En este punto, se notifica al proceso padre que el proceso hijo ha muerto con la señal SIGCHLD y se supone que el padre debe ejecutar la llamada al sistema de espera, lo que permite al padre recopilar información del proceso ahora inactivo. Por lo general, esto ocurre casi de inmediato. Pero no siempre.

Si un proceso principal no está codificado correctamente, es posible que no emita la llamada al sistema de espera y el zombi se quedará en la memoria. Por lo general, esto no es un problema. Pero si se acumulan demasiados procesos zombies, puede causar problemas con su sistema. El mayor problema es que esos zombis usan ID de proceso que podrían evitar que otros procesos se ejecuten.

VER: Rust: lo que los desarrolladores deben saber sobre este lenguaje de programación (PDF gratuito) (TechRepublic)

Si los zombis han consumido demasiados ID de procesos, ¿cómo se enumeran los procesos zombies? Fácil.

Emita el comando ps aux | grep ‘Z’ y si hay procesos zombies rondando, debería verlos. Esos procesos zombies se enumerarán con un ID de proceso asociado.

Para matar un proceso zombie, puede enviar la señal SIGCHLD con el comando kill -s SIGCHLD PID (Donde PID es el ID de proceso del proceso zombi).

Por lo general, no debería ver ningún proceso zombie en su sistema. Pero si su sistema se comporta de manera extraña (no como para tratar de morderse el cerebro), verifique si hay procesos zombies y, si encuentra alguno, elimínelos de inmediato.

Ver también

Leave a Comment