Linux: 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.
Acest articol se aplică pentru
Acest articol nu se aplică pentru
Acest articol nu este legat de un produs specific.
Acest articol nu acoperă toate versiunile de produs existente.
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
Produse afectate
SUSE Linux Enterprise Server 12, Red Hat Enterprise Linux Version 7, Red Hat Enterprise Linux Version 9, Red Hat Enterprise Linux Version 8, SUSE Linux Enterprise Server 15, Ubuntu Server LTSProprietăți articol
Article Number: 000019108
Article Type: How To
Ultima modificare: 03 feb. 2026
Version: 5
Găsiți răspunsuri la întrebările dvs. de la alți utilizatori Dell
Servicii de asistență
Verificați dacă dispozitivul dvs. este acoperit de serviciile de asistență.