¿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?

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.


¿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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.