linux-l: Zombies

Wolfgang Jung woju at drawbridge.in-berlin.de
Sa Feb 7 00:12:05 CET 1998


On Thu, Feb 05, 1998 at 11:40:12AM +0100, Jan Krueger wrote: 
> Wolfgang Jung wrote:
> [ ... von Zombies verschlungen ...]

Urks, sosweit wollte ich sie nun nicht jagen.. diese armen Seelen.

> > Sollten also nach dem Tod des Vaters immer noch zombies bleiben,
> > dann hat der Kern wohl ein Problem, bzw der INIT ist am haengen.
> Nun gut, so sei es.
> Folgende Situation ergab sich gestern:
> Ein haufen Zombies in der Prozess-Liste -> also versuchte meine
> Wenigkeit als unbedarfter Anwender mal einen reboot des Systems,
> ordentlich per Software, wie es sich für einen gut bürgerlichen
> Pinguin gehört. Das ERgebnis war allerdings sehr überraschend, es
> geschah nämlich sehr wenig was auf einen reboot hinweisen könnte,
> es geschah eigentlich nichts.
> 
> Da muß wohl init hängengeblieben sein oder es gab ein Problem mit
> dem Kern, der die Versionsnummer 2.0.33 trägt.

Hmmm, wie hast den Reboot angeleiert ?
mit shutdown -r now (-t 0 )
oder ueber den Affengriff ?
in jedem Fall wird dem init mitgeteilt, er solle alle Prozesse
mit Nachdruck niedermachen (dh zN mit der Kanone Signal 9 Feuern)

Nun um herauszufinden, was da los war, ist es nicht ganz falsch,
in einer dann noch existierenden zugaenglichen Shell ein ps -auxwww
durchzufuehren, und dort den armen INIT zu suchen. traegt der naemlich
im Status ein Grosses D. dann ist das gaze nicht gut.
D steht fuer "uninteruptable wait"; aus diesem vermag ihn auch die
Geschosse der Kanone Signal 9 nicht holen. Er darf natuerlich
kurzzeitig solchen Status haben, aber nicht auf Dauer.

> Eventuell ist mein init zu alt?

Welche Version, passen libs und die urspruengliche lib noch
gut zusammen ?

> Oder, weil es dynamiach gelinkt ist, die zugehörigen Libs?
> 
> Habt Ihr eine Empfehlung für uns bezüglich der zu verwendenen
> Versionen?

Hmmm, ein haengender INIT ist immer ein SEHR SEHR boeses Zeichen
dafuer, dass der kernel ein problem hat.

> Habe ich richtig verstanden, daß ich einen Zombie
> aus der Position des Anwendungs-Anwenders nur entfernen kann,
> wenn ich seine Vater/Mutter-Kombination entferne?

Naja wird ein Zombie nicht von seinen Erzeugern erloest, muessen die
Erzeuger vorher beendet werden, damit der Ziehvater INIT seines Amtes
walten kann.

> Was, wenn ein Kernelprozeß zum Zombie wird, zB: route-deamon?
> Keine Möglichkeit?

Wenn Du den routed meinst, dann ist das kein kernek daemon, sondern
nur ein normaer Daemon, der eben Teile der Kernelroutingtabelle ueber
Systemscalls verwaltet, und auf Netznachrichten hoert.
Sollte dieser zum Zombie werden, und nicht erloest werden, nachgucken,
werde denn "Parent" ist.
pstree -p ist dazu sehr gut zu gebruachen.
steht da nur die 1 (INIT) dann hast Du wieder den haengenden INIT .
denn der muesste den terminierten routed einsammeln. Es sei denn Du
hast ihn im Vordergrtund in einer shell laufen.. dann muss das die
shell erledigen..

> > letzendlich muss fuer jeden Terminierten Prozess ein wait* derivat aufgerufen
> > werden.
> 
> Mein Dank sei Euch gewiß

Das wollen wir aber auch SEHR hoffen *wink*

Gruss
	Wolfgang
-- 




Mehr Informationen über die Mailingliste linux-l