Cosa significa <defunct> nell'output di ps?


15

Avevo emesso il ps -ef|grep javacomando e questa è una delle voci che ho ricevuto:

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

Cosa <defunct>implica qui? In quale stato si trova quel processo con PID = 875 in?

Risposte:


16

Dalla manpage ps :

I processi contrassegnati <defunct>sono processi morti (i cosiddetti "zombi") che rimangono perché il loro genitore non li ha distrutti correttamente. Questi processi verranno distrutti da init (8) se termina il processo padre.


qual è il contratto tra un processo genitore e un processo figlio per la distruzione del processo figlio? Ho pensato che fosse dovere del processo figlio informare il genitore che è stato distrutto?
Geek,

@Geek Il kernel distrugge il processo figlio e avvisa il genitore. Il bambino chiama _exito muore solo di un segnale. Quando il kernel distrugge un processo, tutto ciò che rimane è una voce nella tabella dei processi, che scompare quando il genitore (o processo 1, per gli orfani) chiama wait.
Gilles 'SO- smetti di essere malvagio' il

2
@Giles Cosa significa quando la pagina man dice che il genitore non ha distrutto correttamente il processo figlio? genitore non ha chiamato aspettare?
Geek
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.