Los zombis son procesos MUERTOS. No pueden ser 'matar' (no puedes matar a los MUERTOS). Todos los procesos eventualmente mueren, y cuando lo hacen se convierten en zombies. ¡Casi no consumen recursos, lo cual es de esperarse porque están muertos! La razón de los zombies es que el padre (proceso) del zombie puede recuperar el estado de salida del zombie y las estadísticas de uso de recursos. El padre le indica al sistema operativo que ya no necesita al zombi al usar una de las llamadas al sistema wait ().
Cuando un proceso muere, todos sus procesos hijos se convierten en hijos del proceso número 1, que es el proceso init. Init está `` siempre '' esperando que los niños mueran, para que no permanezcan como zombies.
Si tiene procesos de zombies, significa que esos zombies no han sido esperados por sus padres (mire el PPID mostrado por ps -l
). Tienes tres opciones: arreglar el proceso padre (hazlo esperar); mata al padre; o vivir con eso. Recuerda que vivir con él no es tan difícil porque los zombis ocupan poco más de una línea extra en la salida de ps.
Los zombis se pueden identificar en la salida del comando Unix ps mediante la presencia de una "Z" en la columna STAT. Los zombis que existen durante más de un corto período de tiempo generalmente indican un error en el programa principal. Al igual que con otras fugas, la presencia de algunos zombis no es preocupante en sí misma, pero puede indicar un problema que se agravaría con cargas más pesadas.
Para eliminar zombies de un sistema, la señal SIGCHLD se puede enviar a los padres manualmente, utilizando el comando kill. Si el proceso padre todavía se niega a cosechar el zombi, el siguiente paso sería eliminar el proceso padre. Cuando un proceso pierde su padre, init se convierte en su nuevo padre. Init ejecuta periódicamente la llamada al sistema de espera para cosechar zombies con init como padre.
También hay procesos huérfanos que son un proceso informático cuyo proceso padre ha finalizado o finalizado.
Un proceso puede quedar huérfano durante la invocación remota cuando el proceso del cliente se bloquea después de realizar una solicitud al servidor.
Los huérfanos desperdician recursos del servidor y potencialmente pueden dejar un servidor en problemas (esta es la mayor diferencia de recursos entre zombies y huérfanos (excepto si ves alguna película de zombies huérfanos). Sin embargo, hay varias soluciones al problema del proceso de huérfanos:
El exterminio es la técnica más utilizada; En este caso, el proceso de huérfano se anula.
La reencarnación es una técnica en la que las máquinas intentan periódicamente localizar a los padres de cualquier cálculo remoto; en ese punto los procesos huérfanos son asesinados.
La caducidad es una técnica en la que a cada proceso se le asigna una cierta cantidad de tiempo para terminar antes de ser asesinado. Si es necesario, un proceso puede "pedir" más tiempo para terminar antes de que expire el tiempo asignado.
Un proceso también puede quedar huérfano ejecutándose en la misma máquina que su proceso padre. En un sistema operativo tipo UNIX, cualquier proceso huérfano será adoptado inmediatamente por el proceso especial del sistema "init". Esta operación se llama re-parenting y ocurre automáticamente Aunque técnicamente el proceso tiene el proceso "init" como padre, todavía se llama un proceso huérfano ya que el proceso que lo creó originalmente ya no existe.
Más información:
http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process#ixzz1PCN9vojU
http://www.linuxsa.org.au/tips/zombies.html
http://www.brighthub.com/computing/linux/articles/79186.aspx
¿Cómo identificar y eliminar el proceso de suspensión, cuando el sistema se bloquea y reacciona lentamente a la entrada del usuario?
Matar un proceso en ejecución en una máquina Ubuntu de forma remota desde una máquina Windows que está en LAN