HOWTO: Hilfe, hier sind “Zombies”!

Hab ihr auch schon mal im top einen “Zombie” entdeckt? Gabs bei mir vor kurzem. Da hatte ich ein Skript gebaut und als cron-Job eingetragen. Zuvor wusste ich nicht wie ich den ausfindig mache und diesen töten kann, denn bekanntlich kann man etwas das schon tot ist nicht töten. :)


Das sah im Top dann ungefähr so aus:

Tasks: 128 total, 1 running, 126 sleeping, 0 stopped, 1 zombie

Was ist eigentlich so ein Zombie?

Prinzipiell nichts Schlimmes und richtet eigentlich auch keinen Schaden an, kann aber auf einen Fehler hindeuten. Viele Systemresourcen braucht so ein Zombie eigentlich auch nicht. Normaler Weise taucht so ein Zombie bei einem Child-Prozess (Kind) auf, wenn er keine ordentliche Rückmeldung an den Father-Prozess (Vater) gibt, wie er beendet wurde.

Wie finde ich den/die Zombie/s?

Mit einem einfachen

sudo ps auxf

Dann schaut man sich mal die Prozessliste an und achtet auf ein Z oder Zs und den darüber liegenden Father-Prozess. Bei mir sah das dann so aus:

624 ?        S      0:00 /USR/SBIN/CRON
626 ?        Zs     0:00  \_ [sh]

Wie töte ich so einen Zombie?

Der Zombie ist ja schon tot, also kann man diesen nicht töten. Somit muss man den Father-Prozess beendet werden. Entweder macht man das in der Hardcore-Varriante und haut mit kill -15 [ProzessID] den Prozess einfach weg, oder aber beendet den Dienst herkömmlich über /etc/init.d/[dienstname] stop, was ich hier eher empfehle. Anschließend natürlich nicht vergessen den Dienst wieder zu starten.

Nach dem killen verschwindet der Zombie auch aus dem top.

Tasks: 127 total, 1 running, 126 sleeping, 0 stopped, 0 zombie

Kommentieren

Sie müssen angemeldet sein, um kommentieren zu können.