preap et zombie - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 14-04-2005 à 12:35:18
En regardant les sources de OpenSolaris ?
Marsh Posté le 15-04-2005 à 18:28:43
Spy-master a écrit : les processus zombies sont adoptés par le processus init |
T'es certain de ça ? A ma connaissance pour qu'un processus soit adopté par "init" il faut que son père soit mort.
Un zombie c'est un processus déjà mort donc qui n'existe quasiment plus. Il ne reste plus qu'au père à s'interroger sur l'état de son fils pour que ce dernier disparaisse.
Marsh Posté le 16-04-2005 à 16:38:41
+1 pour Sve@r, info vérifiée dans le bouquin de Blaess (prog systeme en C sous Linux). Par contre pour la question, je n'en ai jamais entendu parler...
Marsh Posté le 14-04-2005 à 12:32:43
Hello à tous,
on m'a posé une question il y a qq jours et j'ai pas trop su répondre
=> question: peut-on supprimer un zombie
J'ai répondu qu'un zombie était un process mort sans que son père soit au courant => il suffit que son père interroge le système sur l'état de son fils par un "wait" ou "waitpid" pour que le processus mort, s'il était zombie, disparaisse.
On m'a alors parlé de la commande "preap" sous solaris 9. Il suffit de taper "preap pid" pour que ce processus, s'il est zombie, disparaisse.
J'ai essayé de faire un programme analogue. Je lui passe un pid et le programme fait un "waitpid(pid, &status, WNOHANG)". Le problème, c'est que les fonctions "wait" et apparentées ne peuvent se faire que sur un pid fils sinon erreur (la fonction renvoie "-1" et errno prend la valeur "ECHILD" )
Donc, ma question finale: quelqu'un connait-il "preap" et sait-il comment il est conçu ?
J'ai trouvé un truc sur "preap" à l'adresse suivante: http://www.infobiogen.fr/doc/man.php?cr=intro