¿ Un proceso zombie es un proceso informático en un sistema operativo basado en Unix, que ha terminado la ejecución , pero todavía tiene un número de identificación del proceso de la izquierda en la tabla de procesos del sistema operativo. Son los restos de un proceso o un programa más amplio que no se pudo recoger y ejecutar todos los comandos de salida para cuando termina el proceso. Estos procesos no ocupan ningún ciclos de CPU o espacio de memoria , sin embargo. Porque
código de programa defectuosa conduce a menudo a procesos no terminan correctamente , lo que resulta en procesos zombies que se plantean en los programas en ejecución . El programador no ha programado un proceso principal para usar el sistema de "espera" llamar para que un proceso hijo para ejecutar de forma independiente , mientras que el padre se suspende . Esto significa que el proceso hijo no devuelve un mensaje de estado de salida a los padres cuando se termina , por lo que el padre no reciba la notificación de la resolución, y el proceso hijo se convierte en un proceso zombie.
Consideraciones
no se apresure a terminar procesos zombie , tan pronto como usted los encuentra . A veces los procesos padres dejan procesos zombies a propósito para que el mismo número de ID de proceso no se da a dos procesos separados durante la vida del programa. Si usted ve a pocos procesos zombies a la vez que no son persistentes, los procesos padre pueden llegar a terminarlos . Sin embargo , si el sistema comienza a disminuir con una gran cantidad de procesos en ejecución , terminación de un proceso zombie puede mejorar el rendimiento.
Localización Zombies
Utilizando un herramienta de comandos unix para ejecutar el comando " ps" - abreviatura de estado del proceso - lista todos los procesos que se están ejecutando en un sistema. Cualquier proceso aparece como " z " en la columna de la Estadística es un proceso zombie. Cualquiera de estos procesos que existen , mientras que el proceso padre o programa está aún en marcha es indicativo de código erróneo , mientras que los procesos de zombies corriendo sin un programa de los padres por lo general representan un error en el sistema operativo.
Matar zombies
procesos zombi
conservan los números de identificación de proceso en la tabla de entrada de proceso , por lo que tener muchos de ellos hacen porque el sistema se quede sin estos números. Sin embargo, puede forzar la terminación de los procesos zombies para liberar sus valores de ID de proceso en la tabla. Terminar ellos mediante el comando " kill- s SIGCHLD " , donde " PPID " representa el identificador de proceso del zombi de los padres. Alternativamente , se puede matar a la fuerza procesos padre de suspender todos los niños y procesos zombies que han creado también.