Escopetas virtuales?
unix
job-control
zombie
jldugger
fuente
fuente
El proceso de zombis (en realidad ahora se llaman
<defunct>
) no es realmente un proceso. Es solo una entrada en la tabla de procesos, por lo que el proceso padre puede hacerwait()
syscall .No deberías preocuparte por ellos. No ocupan ningún recurso, desaparecerán cuando su padre llame
wait()
cuando el padre muera.fuente
Es un proceso que ha sido completamente desasignado pero que aún existe en la tabla de procesos. Compare esto con un proceso huérfano, cuyo padre ha muerto pero aún se está ejecutando.
Aquí hay algunos consejos para deshacerse de ellos.
fuente
Sin embargo, ya hay una respuesta aceptada: PUEDES matar el proceso zombie. Adjunte con el depurador al proceso padre y llame a la función waitpid. Por ejemplo: supongamos que el padre tiene PID = 100, el proceso zombie tiene PID = 200
fuente
Un proceso zombie no tiene recursos asignados, aparte de la entrada en el árbol de procesos. Esto sucede cuando se completa un proceso, sin embargo, el proceso padre aún no lo ha cosechado (es decir,
wait
editado en él).Puede intentar forzar al padre a hacer esto si lo desea enviándole un SIGCHLD (
kill -20
), al padre, pero no hay garantía de que el padre lo respete.A menudo los verá durante cortos períodos de tiempo (por ejemplo, mientras ve el árbol de procesos usando la parte superior); esto es normal; En el intervalo de tiempo entre el momento en que se completa un proceso secundario y el padre lo encuesta, el proceso secundario aparecerá como un zombi.
Sin embargo, si ve procesos zombis que existen continuamente, lo que no es normal, todavía no hay necesidad de preocuparse, ya que no hay recursos asignados a un proceso inactivo, generalmente significa que la aplicación está mal escrita por desarrolladores desagradables.
El único momento en el que deberías preocuparte por los procesos zombie es cuando ves muchos, por ejemplo, si la misma aplicación de mierda mencionada anteriormente se coloca bajo carga.
Tenemos muchos desarrolladores malos donde trabajo, por lo que tengo el privilegio de lidiar con tales problemas y aprender todo tipo de cosas inútiles mientras lo hago. De hecho, mi equipo a menudo recurre al uso de los scripts de shell de mierda escritos por los desarrolladores de mierda en las entrevistas, si el candidato puede elegir que el script es realmente malo y decirnos por qué es malo, tiene un buen pie en la puerta.
fuente
En cuanto a la escopeta virtual ...
Y recuerda: siempre dispara en la cabeza.
fuente
Un proceso zombie es un proceso que ha terminado de ejecutarse, pero que todavía aparece en la tabla de procesos.
kill -9 [parent process_name] lo colocará, con prejuicios extremos.
fuente