Re: Wie kille ich Prozesse mit Status "defunct"
Martin Schmiderer <[email protected]> Wed, 2 Mar 2005 17:27:35 +0100
| Newsgroups | gmane.linux.redhat.general.german |
|---|---|
| Message-ID | <[email protected]> |
Hallo, On Wed, Mar 02, 2005 at 04:21:39PM +0100, Werner Modenbach wrote: > Hallö Jörg, ... > es sieht so aus, als würde der Vaterprozeß einfach nicht mitbekommen, daß der > Kindprozeß sich beendet. Das passiert bei vielen anderen Programmen auch und > läßt eher auf eine marode Kernelinstallation schließen (?). > Daß dann viele Prozesse rumhängen stört ja nicht mal so. Es gibt aber > Programme, die sich selbst in der Zahl der Kindprozesse beschränken. Wohl > ursprünglich in der Absicht, die Systembelastung nicht zu hoch zu treiben. > Diese Prozesse arbeiten dann sehr schnell einfach nicht mehr weiter :( > > - Werner - Also ein Zombie entsteht dadurch das sich ein kind-prozess (fork()) verabschiedet ohne das der eltern-prozess einen wait() erzeugt hat. Dadurch kann der kind-prozess nicht aus der Prozessliste genommen werden, weil die ppid (parent-prozess-id) noch auf die pid des kind-prozesses zeigt. Wenn der eltern-prozess beendet wird, erbt init den kind-prozess (nun als Zombie). Init selbst erkennt in der inittab das dieser Prozess nicht neu gestartet werden muss (respawn), und erzeugt nun einen wait()... da es den prozess aber nicht mehr gibt, kann er sich auch nicht mehr beenden. Die Zombies verschwinden also erst wenn init stirbt... (Init erkennt einen Zombie, und versucht den Kernel dazu zu veranlassen ihn aus der Prozesstabelle zu entfernen, wenn das nicht klappt bleibt er bis zum tod von init (reboot) bestehen.) Das ganze ist eher ein Problem im betroffenen Proggi, als im Kernel... Tja, wenn Prozesse nicht mehr fork()en koennen, weil es schon so viele Zombies gibt, dann kannst Du den Prozess killen, und ihn neu starten... damit bekommt er eine neue pid und kann wieder kinder produzieren. Bis sich Zombies auf die Systemlast auswirken, muessen es schon viele sein... ich denke mal so 500 - 1000 (?) Gruss, Martin -- ________________________________creating IT solutions Martin Schmiderer science + computing ag IT-Services Hagellocher Weg 71-75 phone +49 7071 9457 225 72070 Tuebingen, Germany fax +49 7071 9457 211 www.science-computing.de