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.