En los sistemas operativos Unix, un proceso zombie o un proceso difunto es un proceso que ha completado la ejecución pero aún tiene una entrada en la tabla de procesos, lo que permite que el proceso que lo inició lea su estado de salida. En la colorida metáfora del término, el proceso hijo ha muerto pero aún no se ha cosechado.
Cuando finaliza un proceso, toda la memoria y los recursos asociados con él se desasignan para que otros procesos puedan utilizarlos. Sin embargo, la entrada del proceso en la tabla de procesos permanece. Al padre se le envía una señal SIGCHLD que indica que un niño ha muerto; El controlador de esta señal generalmente ejecutará la llamada al sistema de espera, que lee el estado de salida y elimina al zombi. El ID del proceso del zombi y la entrada en la tabla de procesos se pueden reutilizar. Sin embargo, si un padre ignora el SIGCHLD, el zombi quedará en la tabla de procesos. En algunas situaciones, esto puede ser deseable, por ejemplo, si el padre crea otro proceso hijo, asegura que no se le asignará la misma ID de proceso.
Gracias Marc buena descripción; ahora, ¿cómo podría encontrarlo? Determinar si mantenerlo y, de lo contrario, eliminarlo (y el mensaje).
John Mee
Usualmente se irán solos, si esto realmente te irrita, podrías reiniciar o encontrar el PID del proceso principal y matarlo, pero depende de lo que está dejando atrás al zombie, eso podría ser problemático para matar ese proceso en particular.
Marc-Andre R.
2
No olvide aceptar mi respuesta si esta es la respuesta real a su pregunta;) ¡gracias!
Marc-Andre R.
10
Lo siento, respondiste solo la primera parte de su pregunta. Todavía no está claro si uno debería preocuparse por eso y qué hacer al respecto.
0
Como se explica en la respuesta aceptada, tiene un proceso que ha completado la ejecución pero aún está en la tabla de procesos: https://serverfault.com/a/390216/48449
Esto no debería causar daño si es solo un proceso, pero aún así no debería suceder. Si hay demasiados y no reinicia o reinicia el proceso principal que los produce, puede alcanzar el número máximo de procesos permitidos y causar problemas graves.
Para saber si la preocupación es apropiada y a qué otro proceso pertenece el zombi, esto funciona para mí:
ps -elf --forest | grep -C5 '<[d]efunct>'
Si es necesario, aumente el número de líneas de contexto para obtener información sobre el proceso principal, idealmente corrija ese proceso para que "coseche" sus subprocesos terminados.
Respuestas:
No hay nada de que preocuparse :
Fuente: http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process
fuente
Como se explica en la respuesta aceptada, tiene un proceso que ha completado la ejecución pero aún está en la tabla de procesos: https://serverfault.com/a/390216/48449
Esto no debería causar daño si es solo un proceso, pero aún así no debería suceder. Si hay demasiados y no reinicia o reinicia el proceso principal que los produce, puede alcanzar el número máximo de procesos permitidos y causar problemas graves.
Para saber si la preocupación es apropiada y a qué otro proceso pertenece el zombi, esto funciona para mí:
Si es necesario, aumente el número de líneas de contexto para obtener información sobre el proceso principal, idealmente corrija ese proceso para que "coseche" sus subprocesos terminados.
fuente