¿Qué significa <defunct> en la salida de ps?

15

Había emitido el ps -ef|grep javacomando y esta es una de las entradas que recibí:

subhrcho   875   803  0 Jan23 pts/5    00:02:27 [java] <defunct>

¿Qué <defunct>implica aquí? ¿En qué estado se encuentra ese proceso con PID = 875?

Friki
fuente

Respuestas:

16

Desde la página de manual de ps :

Los procesos marcados <defunct>son procesos muertos (los llamados "zombies") que permanecen porque su padre no los ha destruido adecuadamente. Init (8) destruirá estos procesos si sale el proceso padre.

schaiba
fuente
¿Cuál es el contrato entre un proceso padre y un proceso hijo para la destrucción del proceso hijo? ¿Pensé que es el deber del proceso del niño notificar al padre que está siendo destruido?
Geek
@ Geek El kernel destruye el proceso hijo y notifica al padre. El niño solo llama _exito muere de una señal. Cuando el núcleo destruye un proceso, todo lo que queda es una entrada en la tabla de procesos, que desaparece cuando el padre (o el proceso 1, para los huérfanos) llama wait.
Gilles 'SO- deja de ser malvado'
2
@Giles ¿Qué significa cuando la página del manual dice que el padre no ha destruido correctamente el proceso hijo? padre no llamó esperar?
Geek el