Linux: Beenden eines Zombie-Prozesses in Linux-Umgebungen
Summary: Was ist ein Zombie-Prozess, wie findet man ihn und wie tötet oder beendet man ihn?
Αυτό το άρθρο ισχύει για
Αυτό το άρθρο δεν ισχύει για
Αυτό το άρθρο δεν συνδέεται με κάποιο συγκεκριμένο προϊόν.
Δεν προσδιορίζονται όλες οι εκδόσεις προϊόντων σε αυτό το άρθρο.
Instructions
Was ist ein Zombie-Prozess:
Es ist ein Prozess, der beendet wurde, aber nicht alles davon wird sofort aus dem Arbeitsspeicher entfernt, da sein Prozessdeskriptor im Arbeitsspeicher verbleibt.
Wie sollte das normale Verhalten eines Prozesses aussehen?
Wenn ein Prozess beendet wird, wird der Status des Prozesses
Der übergeordnete Prozess soll dann die
So finden Sie einen Zombie Prozesse:
Ausführen des Befehls
Ausführen des Befehls
So beenden Sie sich ansammelnde Zombie-Prozesse:
In den meisten Fällen haben die Zombie-Prozesse die gleiche übergeordnete Prozess-ID.
Es gibt zwei Methoden, um den Prozess zu entfernen:
Es ist ein Prozess, der beendet wurde, aber nicht alles davon wird sofort aus dem Arbeitsspeicher entfernt, da sein Prozessdeskriptor im Arbeitsspeicher verbleibt.
Wie sollte das normale Verhalten eines Prozesses aussehen?
Wenn ein Prozess beendet wird, wird der Status des Prozesses
EXIT_ZOMBIE und das übergeordnete Verfahren des Prozesses wird benachrichtigt, dass sein untergeordneter Prozess mit dem SIGCHLD Signal.
Der übergeordnete Prozess soll dann die
wait() Damit der Systemaufruf den Beendigungsstatus des inaktiven Prozesses und andere Informationen liest. Nachher wait() aufgerufen wird, wird der Zombie-Prozess aus dem Gedächtnis entfernt. Dies geschieht schnell, sodass sich keine Zombie-Prozesse auf Ihrem System ansammeln. Aber in Fällen, in denen wir sehen, dass sich mehrere Zombie-Prozesse ansammeln, ist dies eine Situation, in der der Programmcode nicht effizient ist.
So finden Sie einen Zombie Prozesse:
Ausführen des Befehls
top
Ausführen des Befehls
ps -ef | grep defunct
So beenden Sie sich ansammelnde Zombie-Prozesse:
In den meisten Fällen haben die Zombie-Prozesse die gleiche übergeordnete Prozess-ID.
Es gibt zwei Methoden, um den Prozess zu entfernen:
- Senden Sie die
SIGCHLDSignal an den übergeordneten Prozess.
Dieses Signal weist den übergeordneten Prozess an, die
wait() Systemaufruf und räumt seine Zombie-Kinder auf:
kill -s SIGCHLD <PPID>
Beispiel:
kill -s SIGCHLD 2201
- Tötet den übergeordneten Zombie-Prozess
kill -9 <PPID>
Beispiel:
kill -9 2201
Επηρεαζόμενα προϊόντα
SUSE Linux Enterprise Server 12, Red Hat Enterprise Linux Version 7, Red Hat Enterprise Linux Version 9, Red Hat Enterprise Linux Version 8, SUSE Linux Enterprise Server 15, Ubuntu Server LTSΙδιότητες άρθρου
Article Number: 000019108
Article Type: How To
Τελευταία τροποποίηση: 03 Φεβ 2026
Version: 5
Βρείτε απαντήσεις στις ερωτήσεις σας από άλλους χρήστες της Dell
Υπηρεσίες υποστήριξης
Ελέγξτε αν η συσκευή σας καλύπτεται από τις Υπηρεσίες υποστήριξης.