"Es gibt 1 Zombie-Prozess"

33

Diese Meldung wird angezeigt, wenn ich mich bei meinem Computer anmelde ...

There is 1 zombie process.
  • Was sagt es mir?
  • Sollte ich mir darüber Sorgen machen?
  • Wenn ja, was soll ich dann wie tun?
John Mee
quelle
19
Haben Sie eine Doppelbüchse in der Nähe?
EEAA

Antworten:

27

Da gibt es nichts worüber man sich Sorgen machen müsste :

Zombie

Unter Unix-Betriebssystemen ist ein Zombie-Prozess oder ein nicht mehr funktionierender Prozess ein Prozess, dessen Ausführung abgeschlossen ist, der jedoch noch einen Eintrag in der Prozesstabelle enthält, sodass der Prozess, der ihn gestartet hat, seinen Beendigungsstatus lesen kann. In der farbenfrohen Metapher des Begriffs ist der Prozess des Kindes gestorben, aber noch nicht geerntet worden.

Wenn ein Prozess endet, werden alle ihm zugeordneten Speicher und Ressourcen freigegeben, damit sie von anderen Prozessen verwendet werden können. Der Eintrag des Prozesses in der Prozesstabelle bleibt jedoch erhalten. Dem Elternteil wird ein SIGCHLD-Signal gesendet, das angibt, dass ein Kind gestorben ist. Der Handler für dieses Signal führt normalerweise den Systemaufruf wait aus, der den Beendigungsstatus liest und den Zombie entfernt. Die Prozess-ID und der Eintrag des Zombies in der Prozesstabelle können dann wiederverwendet werden. Wenn jedoch ein Elternteil die SIGCHLD ignoriert, verbleibt der Zombie in der Prozesstabelle. In einigen Situationen kann dies wünschenswert sein, z. B. wenn das übergeordnete Element einen anderen untergeordneten Prozess erstellt, wird sichergestellt, dass ihm nicht dieselbe Prozess-ID zugewiesen wird.

Quelle: http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process

Marc-Andre R.
quelle
Danke Marc gute Beschreibung; Nun, wie würde ich es finden, herausfinden, ob es aufbewahrt werden soll, und wenn nicht, es von dort entfernen (und die Nachricht).
John Mee
Normalerweise werden sie von selbst losgehen. Wenn Sie dies wirklich irritiert, könnten Sie die übergeordnete Prozess-PID neu starten oder finden und sie beenden. Es hängt jedoch davon ab, was den Zombie zurücklässt. Dies könnte problematisch sein, um diesen bestimmten Prozess zu beenden.
Marc-Andre R.
2
Vergessen Sie nicht, meine Antwort zu akzeptieren, wenn dies die richtige Antwort auf Ihre Frage ist;) Danke!
Marc-Andre R.
10
Entschuldigung, Sie haben nur den ersten Teil seiner Frage beantwortet. Es ist immer noch unklar, ob man sich darum kümmern sollte und was man dagegen tun soll.
0

Wie in der akzeptierten Antwort erläutert, haben Sie einen Prozess, dessen Ausführung abgeschlossen ist, der sich jedoch noch in der Prozesstabelle befindet: https://serverfault.com/a/390216/48449

Dies sollte keinen Schaden anrichten, wenn es sich nur um einen Prozess handelt, aber dennoch nicht geschehen sollte. Wenn zu viele vorhanden sind und Sie den verursachenden übergeordneten Prozess, der diese Prozesse erzeugt, nicht neu starten oder neu starten, können Sie die maximale Anzahl zulässiger Prozesse erreichen und schwerwiegende Probleme verursachen.

Um herauszufinden, ob die Sorge angebracht ist und zu welchem ​​anderen Prozess der Zombie gehört, funktioniert das für mich:

ps -elf --forest | grep -C5 '<[d]efunct>'

Erhöhen Sie gegebenenfalls die Anzahl der Kontextzeilen, um mehr über den übergeordneten Prozess zu erfahren. Korrigieren Sie diesen Prozess im Idealfall, damit er seine abgeschlossenen Unterprozesse "erntet".

exic
quelle