[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Zombie process



Salut,

A zombie process is a process that has exited, but whose exit code has not reached its parent process. The parent process has to perform a wait system call to read the exit code of a child. Until the parent receives the exit code, the child process will remain in "zombie" state.

Zombie processes are already dead and cannot be "killed." They consume no system resources except an entry in the system process table (seen in the proc-sz column with the sar -v command).

The only way to remove a zombie process is to kill its parent process.

More information:
http://groups.google.com/groups?q=zombie+processes+wait&hl=en&lr=&ie=UTF-8&selm=1993Feb14.021655.13721%40acd4.acd.com&rnum=9

D'après jargon.fr on apprend :

Programme terminé mais dont le père n'a pas été informé de sa mort. Ses données sont donc encore accessibles, ce qui fait qu'il est encore un peu vivant... Un programme dont le père a été détruit est de son côté un orphelin.

Donc si ton 'logrotate' a été lancé par init, effectivement il est assez difficile de redémarrer init sans reboot (peut-être un init q ?). Sinon tu peux tuer son père (on ne voit pas la colonne PPID dans ton ps).

J'ai déjà réussi à supprimer des zombies en effectuant un simple 'strace' sur le processus zombie, normalement 'strace' est censé être transparent pour le processus, apparemment pas toujours.

Cheers.

Thomas Preud'homme a écrit :
Le jeudi 2 octobre 2008, Gilles Mocellin a écrit :
On Thu, Oct 02, 2008 at 06:52:48PM +0200, Thibaut LE LEVIER wrote:
Bonjour la liste

depuis quelques jours je me bat contre le zombie qui sommeil sur
mon serveur, je n'arrive pas à le trouver et à le tuer
j'ai chercher avec "ps aux | grep Z" mais le seul processus que je
trouve en "Zs" est :
satie:/home/tibo# ps aux | grep Z
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME
COMMAND root 14545 0.0 0.0 0 0 ? Zs Sep28 0:00 [logrotate] <defunct>

ce qui est étonnant c'est qu'il ne signale aucune utilisation des
ressources alors qu'avec un "uptime" la sortie est presque toujours
au dessus de 0.20 (au minimum)
(cf http://lelevier.dyndns.org/ en bas de page)
la machine n'est pas très puissante (133mhz) et à servi à beaucoup
de test mais là je ne vois pas ce qui cloche.
Pour moi, un process zombie est un process qui s'est terminé sans
donner de code retour à son process père. Il ne consomme donc plus
rien.

La seule façon qu'il disparaisse de la liste des processus, c'est de
rebooter.

Non normalement un process zombie c'est un processus qui a encore une entrée dans la table des processus (le PID ne peut donc être réaffecté) et dont le père n'a pas encore fait d'appel système de type wait (genre waitpid) pour récupérer l'état de terminaison du processus en question.

Après là je pense que c'est dans le sens un processus caché, genre rootkit vicieux non ?

Cordialement,

Thomas Preud'homme



Reply to: