Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was tun, wenn der Linux-Zombie-Prozess nicht beendet werden kann?

Was tun, wenn der Linux-Zombie-Prozess nicht beendet werden kann?

WBOY
WBOYOriginal
2022-05-23 14:38:207823Durchsuche

Lösung für den Linux-Zombie-Prozess, der nicht beendet werden kann: 1. Verwenden Sie den Befehl cat, um die übergeordnete Prozess-ID des Zombie-Prozesses anzuzeigen. Die Syntax lautet „cat /proc/zombie-Prozess-ID/Status“. Befehl zum Anzeigen der übergeordneten Prozess-ID. Beenden Sie ihn einfach. Die Syntax lautet „kill -9 Prozessnummer des übergeordneten Prozesses“.

Was tun, wenn der Linux-Zombie-Prozess nicht beendet werden kann?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Was tun, wenn der Linux-Zombie-Prozess nicht beendet werden kann?

Mit dem Kill-Befehl können Sie den Prozess im Linux-System beenden. Trotz des Namens sind der Kill-Befehl und eine Reihe anderer Befehle (z. B. pdill und killall) so geschrieben bzw. konzipiert, dass sie bestimmte Signale an einen oder mehrere Prozesse senden. Wenn nichts angegeben ist, ist das standardmäßig gesendete Signal das SIGTERM-Signal, das den Prozess beendet.

Wenn der übergeordnete Prozess stirbt oder getötet wird und sein untergeordneter Prozess nicht mit seinem übergeordneten Prozess stirbt, nennen wir den Prozess einen verwaisten Prozess.

So töten Sie Zombie-Prozesse

Andererseits können Zombie-Prozesse nicht getötet werden, weil sie bereits tot sind!

Nachdem jeder untergeordnete Prozess beendet wurde, wird er zu einem Zombie-Prozess. und dann vom übergeordneten Prozess gelöscht. Wenn ein Prozess seine Existenz verlässt und die von ihm verwendeten Ressourcen freigibt, befindet sich sein Name weiterhin in der Betriebssystem-Prozesstabelle. Sein Name wird dann vom übergeordneten Prozess aus der Prozesstabelle entfernt. Wenn es fehlschlägt, haben wir einen Zombie-Prozess, aber es ist kein echter Prozess mehr, sondern nur ein Eintrag in der Prozesstabelle des Betriebssystems.

Aus diesem Grund funktioniert selbst die Verwendung des Befehls kill -9 (SIGKILL) bei einem toten (Zombie-)Prozess nicht, da es nichts zu töten gibt.

Um also einen Zombie-Prozess zu beenden und seinen Namen aus der Prozessliste zu entfernen, müssen Sie seinen übergeordneten Prozess beenden. Wenn beispielsweise PID 5878 ein Zombie-Prozess ist und sein übergeordneter Prozess PID 4809 ist, beenden Sie zum Töten des Zombies (5878) auch PID 4809:

sudo kill -9 4809 #4809 is the parent, not the zombie

Aber seien Sie sehr vorsichtig, wenn Sie den übergeordneten Prozess beenden. Wenn der übergeordnete Prozess PID 1 ist und Sie ihn beenden, wird das System neu gestartet! 2. Mit „Kill -9 die Prozessnummer des übergeordneten Prozesses“ wird der übergeordnete Prozess gelöscht

Empfohlenes Lernen:

Linux-Video-Tutorial

Was tun, wenn der Linux-Zombie-Prozess nicht beendet werden kann?

Das obige ist der detaillierte Inhalt vonWas tun, wenn der Linux-Zombie-Prozess nicht beendet werden kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn