Zum Inhalt springen

Zombie Prozesse killen?!


Scratch

Empfohlene Beiträge

Das sind die Prozesse ...

 1220 ?        Z      0:00 [login <defunct>]

 1226 ?        Z      0:00 [init <defunct>]

 1729 pts/0    Z      0:15 [perl <defunct>]

 1730 pts/0    Z     33:05 [emagent <defunct>]

 1860 ?        Z      0:00 [opmn <defunct>]

11650 ?        Z      0:00 [sendmail <defunct>]

11654 ?        Z      0:00 [sendmail <defunct>]

14292 ?        Z      0:00 [gzip <defunct>]

14385 pts/0    Z      0:00 [shutdown <defunct>]

was haben die Zombie-Prozesse mit deinem Shutdown-Problem zu tun?

Ich nehme mal an das es wegen den Zombies nicht geht ;-)

Es kommt zwar ein schöner Text das jetzt heruntergefahren wird aber danach lande ich wieder in der Konsole ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zombie sind tot und man kann sie nicht mehr killen.

Zombie Prozesse sind Kennzeichen für ein unstabiles System/QUOTE]

Zombie Prozesse sind definitiv nicht "tot". In einem Zombie kann sehr wohl noch Code existieren, der ausgefuehrt werden muss. Killen lassen sich diese Prozesse nicht und das System wird dadurch auch nicht instabil (ausser der Entwickler des Programms war betrunken und durch den Zombie entsteht ein Memory Leak oder aehnliches).

Zombies entstehen, wenn der Elternprozess nicht auf den Kindprozess wartet oder sich vor dem Kindprozess beendet ohne setsid() auszufuehren.

Manchmal beenden sich Zombieprozesse von selbst und manchmal hilft eben nur der reboot. Wenn du fit in C/Linux bist, dann soltest du das Programm, dass den Zombie erzeugt, vielleicht mal mit strace naeher beobachten und gegebenenfalls den Sourcecode selbst editieren...

mfg

iscariot

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zombie Prozesse sind definitiv nicht "tot". In einem Zombie kann sehr wohl noch Code existieren, der ausgefuehrt werden muss.

Hmmm...bisher dachte ich immer, dass der Code eines Zombies bereits komplett abgearbeitet wurde und der Prozess zwar noch in der Prozesstabelle hängt, keine Systemrecourcen in diesem Sinne verbraucht werden und Zombie Prozesse somit dem System auch nicht Schaden. Und halt nur noch darauf gewartet wird, dass der Parent den ExitStatus des Childs abfrägt...(er es aber nicht tut, weil es sich bereits beendet hat)

Killen lassen sich diese Prozesse nicht

da sind wir uns einig :) (Obwohl böse Zungen - eine Kollegin - behaupten, sie hätten schon mal Zombies unter Solaris mit kill -9 <pid> erfolgreich gekillt)

und das System wird dadurch auch nicht instabil (ausser der Entwickler des Programms war betrunken und durch den Zombie entsteht ein Memory Leak oder aehnliches).

das habe ich auch nicht behauptet bzw. wollte ich das damit nicht aussagen, sorry wenn ich mich da undeutlich ausgedrückt habe.

Zombies entstehen, wenn der Elternprozess nicht auf den Kindprozess wartet oder sich vor dem Kindprozess beendet ohne setsid() auszufuehren.

Genau so habe ich das auch verstanden.

Manchmal beenden sich Zombieprozesse von selbst und manchmal hilft eben nur der reboot.

Von selbst, wie das, einfach nur so?

Ich dachte immer, dass sich der Init drum kümmert, dass die Zombie-Prozesse dem Init (PID 1) übergeben werden bzw. er deren Papa wird und wenn das nicht hilft, dann einfach die Kiste durchbooten (wie du ja schon sagtest).

Die wirklich wichtige Frage, die ich mir bisher noch nicht beantworten habe können:

Was ist denn zu tun, wenn man ein System hat, dass lauter Zombie Prozesse aufweißt?

Entweder man fängt an selbst herumzuprogrammieren (was ich ja nicht gerade empfehle -> sehr oft erlebt 'cron defunct'-Prozesse) oder aber man nimmt eine komplett neue Maschine (bisher wusste ich mir da nicht anders zu helfen)

Vielleicht hat der ein oder andere noch einen Tipp, weil ich das Thema an sich schon sehr interessant finde. Denn wenn man googelt, dann findet man zwar Bestätigungen, aber leider keine Lösungen für Probleme mit den Zombies :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, nicht mal damit :D

Ich habe jetzt nochmal kurz recherchiert...

...ERRORS

EINVAL

An invalid signal was specified.

ESRCH

The pid or process group does not exist. Note that an existing process might be a zombie, a process which already committed termination, but has not yet been wait()ed for....

Quelle: http://linux.about.com/od/commands/l/blcmdl2_kill.htm

What are these zombie processes that show up in ps? I kill them but they don't go away!

Zombies are dead processes. You cannot kill the dead. All processes eventually die, and when they do they become zombies. They consume almost no resources, which is to be expected because they are dead! The reason for zombies is so the zombie's parent (process) can retrieve the zombie's exit status and resource usage statistics. The parent signals the operating system that it no longer needs the zombie by using one of the wait() system calls.

When a process dies, its child processes all become children of process number 1, which is the init process. Init is ``always'' waiting for children to die, so that they don't remain as zombies.

If you have zombie processes it means those zombies have not been waited for by their parent (look at PPID displayed by ps -l). You have three choices: Fix the parent process (make it wait); kill the parent; or live with it. Remember that living with it is not so hard because zombies take up little more than one extra line in the output of ps.

Quelle: http://www.linuxsa.org.au/tips/zombies.html

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja wie? nichtmals mit kill -9 [PID] ? :confused: Also damit habe ich bei mir auf der Gentoo-Kiste bisher noch jeden Prozess beendet bekommen und kann mir auch nicht denken, dass das dabei nicht gehen sollte... :rolleyes:

Ach soooo, die meinst du.

Klar, die kann man nicht beenden ausser durch nen Neustart.

Tschuldige - welche meintest denn du bzw. um welche Art von Prozessen geht es denn hier schon die ganze Zeit? War das jetzt ein "wie-rede-ich-mich-da-noch-heraus"-Versuch? :bimei :e@sy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Tschuldige - welche meintest denn du bzw. um welche Art von Prozessen geht es denn hier schon die ganze Zeit? War das jetzt ein "wie-rede-ich-mich-da-noch-heraus"-Versuch? :bimei :e@sy
Ich dachte unter Zombie-Prozessen versteht man die, die sich "aufgehängt" haben und sich vom Programm aus nicht mehr beenden lassen.

Wenn die PID nicht mehr existiert, ists ja klar, dass man sie nicht mehr beenden kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...