> > En dehors de la raison qui fait que ton int. php ne fonctionne plus, tu
> > peux faire disparaitre tes process en tuant le PPID de 2006 & 2151.
>
> Tu veux dire quelque chose genre: kill -9 2006 ?
> Si c'est ça, ça ne marche pas:(

Non, ca ne peut pas marcher. Je crois que l'explication en a deja ete donne 
dans cette liste mais je vais rafraichir un peu les memoires. L'etat <defunc> 
d'un process n'est qu'un etat transitoire dont la duree de vie devrait eter 
extremement courte. C'est l'etat dans lequel un process se trouve APRES avoir 
fait exit() (_exit()). C'est a dire que plus aucune page memoire (text, data, 
shm, etc.) ou "file descriptor" (files, sockets, etc.) ne sont attaches a ce 
process. La seule chose qui subsiste est une "structure" dans le tableau des 
process du kernel. Dans cette structure, il y a un element qui est cense 
contenir la valeur de retour du process (exit()). Ceci, afin que le pere du 
dit process puisse venir lire cette valeur. Malheureusement, beaucpoup de 
programeurs negligent cet aspect de la relation PID-PPID et, apres avoir cree 
un (des) process fils, ne se preoccuopent pas le moins du monde d'aller lire 
cette valeur ou de detacher correctement ce process apres sa creation. Il 
s'ensuit des <defunc> qui sont bien listes comme "process" mais n'esn sont en 
fait plus !!! Ils occuperont une place dans la "proc table" jusque'a ce que 
leur PPID vienne lire cette valeur, ou que ce dernier se termine (d'ou le 
kill du PPID). Envoye des kill au PID ne sert a rien, puisque le process est 
deja "dead". Les signaux ne peuvent donc plus etre pris en compte pour ce 
process. Donc, il suffit de determiner le PPID du process marque <defunc> et 
de tuer celui-ci; ou de le reactiver s'il dormait (SIGPAUSE, I/O, etc.)

Daniel



--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.

Répondre à