Junior — Middle
¿Cómo se puede finalizar o forzar la detención de un proceso zombie en un sistema operativo?
sobes.tech AI
Respuesta de la IA
Un proceso zombi es un proceso que ha finalizado, pero su proceso padre aún no ha leído su estado de finalización (no ha llamado a wait). En el sistema, ocupa una entrada en la tabla de procesos, pero no utiliza recursos de CPU.
No se puede finalizar forzosamente un proceso zombi directamente, ya que ya ha terminado. Para deshacerse de un zombi, se debe:
- Finalizar o reiniciar el proceso padre que no llamó a wait. En ese caso, init (PID 1) se convertirá en el nuevo padre del zombi y llamará automáticamente a wait, eliminando el zombi.
- Enviar la señal SIGCHLD al proceso padre para que procese el estado de finalización de los procesos hijos.
Ejemplo de comando para enviar la señal al padre:
kill -s SIGCHLD <PID_del_padre>
Si el padre no responde, se puede terminar:
kill -9 <PID_del_padre>
Después de esto, init recogerá y eliminará el zombi.