Terminación de un proceso zombi en entornos Linux
Summary: Qué es un Proceso Zombie, cómo encontrarlo y cómo matarlo o acabar con él.
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Instructions
¿Qué es un proceso zombi?
Es un proceso que terminó, pero no todo se elimina inmediatamente de la memoria, ya que su descriptor de proceso permanece en la memoria.
¿Cuál debe ser el comportamiento normal de un proceso?
Cuando finaliza un proceso, el estado del proceso se convierte en
A continuación, se supone que el proceso primario ejecuta el método
Cómo encontrar un proceso zombie:
Ejecución del comando
Ejecución del comando
Cómo terminar los procesos zombis acumulados:
La mayoría de las veces, los procesos zombis tienen el mismo ID de proceso primario.
Existen dos métodos para eliminar el proceso:
Es un proceso que terminó, pero no todo se elimina inmediatamente de la memoria, ya que su descriptor de proceso permanece en la memoria.
¿Cuál debe ser el comportamiento normal de un proceso?
Cuando finaliza un proceso, el estado del proceso se convierte en
EXIT_ZOMBIE y se notifica al proceso primario que su proceso secundario ha muerto con el SIGCHLD señal.
A continuación, se supone que el proceso primario ejecuta el método
wait() Para que la llamada del sistema lea el estado de salida del proceso inactivo y otra información. Después wait() se llama, el proceso zombi se elimina de la memoria. Esto sucede rápidamente, por lo que no verá que los procesos zombis se acumulan en su sistema. Pero en los casos en los que vemos que se acumulan varios procesos zombis, esta es una situación en la que el código del programa no es eficiente.
Cómo encontrar un proceso zombie:
Ejecución del comando
top
Ejecución del comando
ps -ef | grep defunct
Cómo terminar los procesos zombis acumulados:
La mayoría de las veces, los procesos zombis tienen el mismo ID de proceso primario.
Existen dos métodos para eliminar el proceso:
- Envíe el mensaje
SIGCHLDseñal al proceso principal.
Esta señal le indica al proceso primario que ejecute el comando
wait() El sistema llama y limpia a sus hijos zombis:
kill -s SIGCHLD <PPID>
Ejemplo:
kill -s SIGCHLD 2201
- Acabar con el proceso principal zombi
kill -9 <PPID>
Ejemplo:
kill -9 2201
Affected Products
Dell OpenManage Enterprise, NetWorker SeriesArticle Properties
Article Number: 000019108
Article Type: How To
Last Modified: 12 Apr 2025
Version: 4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.