2024 Autor: Peter John Melton | [email protected]. Zuletzt bearbeitet: 2023-12-16 04:41
Zombies sind im Grunde die Überbleibsel von toten Prozessen, die noch nicht richtig aufgeräumt wurden. Ein Programm, das Zombie-Prozesse erstellt, ist nicht ordnungsgemäß programmiert. Es ist nicht beabsichtigt, dass Programme Zombie-Prozesse durchhalten.
Was ist ein Zombie-Prozess?
Um zu verstehen, was ein Zombie-Prozess ist und was dazu führt, dass Zombie-Prozesse angezeigt werden, müssen Sie ein wenig darüber verstehen, wie Prozesse unter Linux funktionieren.
Wenn ein Prozess unter Linux abstürzt, wird er nicht sofort aus dem Arbeitsspeicher entfernt - der Prozessdeskriptor bleibt im Arbeitsspeicher (der Prozessdeskriptor benötigt nur wenig Speicherplatz). Der Status des Prozesses wird zu EXIT_ZOMBIE und der übergeordnete Prozess des Prozesses wird benachrichtigt, dass sein untergeordneter Prozess mit dem SIGCHLD-Signal gestorben ist. Der übergeordnete Prozess soll dann den wait () -Systemaufruf ausführen, um den Exitstatus des toten Prozesses und andere Informationen zu lesen. Dadurch kann der übergeordnete Prozess Informationen aus dem nicht aktiven Prozess abrufen. Nach dem Aufruf von wait () wird der Zombie-Prozess vollständig aus dem Speicher entfernt.
Dies geschieht normalerweise sehr schnell, so dass sich auf Ihrem System keine Zombie-Prozesse ansammeln. Wenn ein übergeordneter Prozess jedoch nicht richtig programmiert ist und nie wait () aufruft, bleiben seine Zombie-Kinder im Speicher, bis sie aufgeräumt sind.
Dienstprogramme wie der GNOME-Systemmonitor oben Befehl und die ps Befehl Anzeige Zombie-Prozesse.
Gefahren von Zombie-Prozessen
Zombie-Prozesse verbrauchen keine Systemressourcen. (Eigentlich verwendet jeder eine sehr kleine Menge Systemspeicher, um seinen Prozessdeskriptor zu speichern.) Allerdings behält jeder Zombie-Prozess seine Prozess-ID (PID). Linux-Systeme verfügen über eine begrenzte Anzahl von Prozess-IDs - standardmäßig 32767 auf 32-Bit-Systemen. Wenn sich Zombies sehr schnell ansammeln - zum Beispiel, wenn eine nicht ordnungsgemäß programmierte Serversoftware Zombie-Prozesse unter Last erzeugt - wird der gesamte Pool der verfügbaren PIDs schließlich Zombie-Prozessen zugewiesen, so dass andere Prozesse nicht gestartet werden können.
Einige wenige Zombie-Prozesse sind jedoch kein Problem - obwohl sie auf einen Fehler bei ihrem übergeordneten Prozess in Ihrem System hinweisen.
Zombie-Prozesse loswerden
Sie können Zombie-Prozesse nicht beenden, da Sie normale Prozesse mit dem SIGKILL-Signal beenden können. Zombie-Prozesse sind bereits tot. Denken Sie daran, dass Sie die Zombie-Prozesse nicht loswerden müssen, es sei denn, Sie haben eine große Menge auf Ihrem System - einige Zombies sind harmlos. Es gibt jedoch einige Möglichkeiten, Zombie-Prozesse zu beseitigen.
Eine Möglichkeit ist das Senden des SIGCHLD-Signals an den übergeordneten Prozess. Dieses Signal weist den übergeordneten Prozess an, den wait () - Systemaufruf auszuführen und seine Zombie-Kinder zu säubern. Senden Sie das Signal mit töten Befehl, Ersetzen pid im folgenden Befehl mit der PID des übergeordneten Prozesses:
kill -s SIGCHLD pid
Wenn der übergeordnete Prozess jedoch nicht richtig programmiert ist und SIGCHLD-Signale ignoriert, hilft dies nicht. Sie müssen den übergeordneten Prozess der Zombies beenden oder beenden. Wenn der Prozess, der die Zombies erstellt hat, endet, erbt init die Zombie-Prozesse und wird zu ihrem neuen übergeordneten Element. (init ist der erste Prozess, der beim Booten unter Linux gestartet wurde und der PID 1 zugewiesen wird.) init führt regelmäßig den wait () -Systemaufruf aus, um seine Zombie-Kinder zu bereinigen, sodass init die Zombies in kurzer Zeit erledigt. Sie können den übergeordneten Prozess nach dem Schließen erneut starten.
Wenn ein übergeordneter Prozess weiterhin Zombies erstellt, sollte dies behoben werden, damit wait () ordnungsgemäß aufgerufen wird, um seine Zombie-Kinder zu ernten. Senden Sie einen Fehlerbericht, wenn ein Programm in Ihrem System ständig Zombies erstellt.
Empfohlen:
Was ist Mixed Reality unter Windows 10 und sollten Sie ein Headset kaufen?
Microsoft baut ein Ökosystem von Mixed-Reality-Headsets verschiedener PC-Hersteller auf. Trotz des irreführenden Namens sind die ersten Headsets, die Sie heute kaufen können, eigentlich nur Virtual-Reality-Headsets ohne Augmented-Reality-Funktionen.
Büro 2019 ist angekommen. Hier ist, warum es Ihnen wahrscheinlich egal ist.
Gestern gab Microsoft die Verfügbarkeit von Office 2019 für Volumenlizenzkunden bekannt, die in den kommenden Wochen eine allgemeine Verfügbarkeit für den Einzelhandel versprechen. Wenn Sie nicht als Geschäftskunde ein Upgrade durchführen möchten und nicht bereit sind, Ihr Office-Leben in die Cloud zu verlagern, ist dies für Sie wahrscheinlich unwichtig.
PC-Auffrischung hilft nicht: Warum Bloatware unter Windows 8 immer noch ein Problem ist
Auf neuen Windows 8- und 8.1-PCs ist Bloatware nach wie vor ein großes Problem. Auf einigen Websites können Sie feststellen, dass Sie die vom Hersteller installierte Bloatware mit der Reset-Funktion von Windows 8 problemlos entfernen können. Dies ist jedoch in der Regel falsch.
Ein unerwarteter E / A-Fehler ist aufgetreten, Fehler 0xc00000e9 unter Windows 10
In diesem Beitrag wird beschrieben, wie Sie das Problem beheben können. Es ist ein Problem mit einem an Ihren PC angeschlossenen Gerät aufgetreten. Ein unerwarteter E / A-Fehler ist aufgetreten. Fehlercode 0xc00000e9 unter Windows.
TLPD ist ein langer Dateipfadfinder zum Erkennen von Dateien mit langen Pfaden unter Windows
Too Long Paths Detector oder TLPD ist ein Tool zum Suchen und Auflisten von Dateipfadfindern, mit dessen Hilfe Sie Dateien mit langen Pfaden auf Windows-Systemen erkennen können.