Que signifie <defunct> dans la sortie de ps?


15

J'avais émis la ps -ef|grep javacommande et c'est l'une des entrées que j'ai reçues:

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

Qu'est- <defunct>ce que cela implique ici? Dans quel état est ce processus est ce processus avec PID = 875 po?

Réponses:


16

Depuis la page de manuel ps :

Les processus marqués <defunct>sont des processus morts (appelés "zombies") qui restent parce que leur parent ne les a pas détruits correctement. Ces processus seront détruits par init (8) si le processus parent se termine.


quel est le contrat entre un processus parent et un processus enfant pour la destruction du processus enfant? Je pensais que le devoir de l'enfant était d'aviser le parent qu'il était en train d'être détruit?
Geek

@Geek Le noyau détruit le processus enfant et notifie le parent. L'enfant appelle seulement_exit ou mourir d'un signal. Lorsque le noyau détruit un processus, il ne reste qu'une entrée dans la table des processus, qui disparaît lorsque le parent (ou le processus 1, pour les orphelins) appelle wait.
Gilles 'SO- arrête d'être méchant'

2
@Giles Qu'est-ce que cela signifie lorsque la page de manuel indique que le parent n'a pas détruit correctement le processus enfant? le parent n'a pas appelé attendre?
Geek
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.