De acuerdo con wikipedia , un proceso zombie es un proceso que se ha completado, pero aún tiene una entrada en el proceso. mesa. En otras palabras, un proceso zombie ha terminado de ejecutarse, pero aún no se ha limpiado.
Cuando un proceso finaliza, su código de retorno debe devolverse al proceso principal. Normalmente, esto sucede inmediatamente, por lo que no ves el proceso zombie. Sin embargo, a veces, el proceso padre no coopera, y el zombi permanece en la tabla de proceso por tiempo indefinido.
Si quieres deshacerte de un proceso zombie, tienes tres opciones :
- espera. Esperemos que se resuelva por sí solo.
- Envía un SIGCHLD al padre del zombie. Si se está comportando correctamente, recuperará el código de retorno del proceso zombie, y el sistema puede cosechar el proceso zombie.
- Matar el proceso padre. Cuando matas un proceso, sus hijos son adoptados por init, que limpiará todo para ti.