Da ich Neuling in Linux / Unix-Systemen bin und nur über Zombie-Prozesse lese , habe ich eine Frage. Ich habe gerade 10 davon. Muss ich sie töten und wenn ja, warum? Belasten sie mein System?
592 processes: 581 sleeping, 1 running, 10 zombie, 0 stopped
Antworten:
Du kannst keinen Zombie töten, er ist bereits tot.
Die Ressourcen dieses Prozesses sind frei und für andere Prozesse verfügbar. Was bleibt, ist ein Eintrag in der Prozesstabelle. Dies hat keinen Einfluss auf die Leistung, keine Sorge.
quelle
/proc/sys/kernel/pid_max
genau wie jede andere PID.Quelle: http://www.linuxsa.org.au/tips/zombies.html
Und für den Fall, dass Sie sich auf einem Amoklauf befinden, könnte dieser Superuser-Thread für Sie interessant sein: Wie finden Sie den übergeordneten Prozess eines Zombie-Prozesses?
quelle
Du musst sie nicht töten.
Grundlegendes Verständnis aufbauen:
Jeder Prozess ist das Kind eines übergeordneten Prozesses (mit Ausnahme des Init-Prozesses, aber darüber müssen wir uns keine Gedanken machen).
Wenn ein untergeordneter Prozess die Ausführung beendet hat, enthält er möglicherweise noch Daten, auf die der übergeordnete Prozess zugreifen möchte, normalerweise einen Beendigungscode, der das Ergebnis des untergeordneten Prozesses beschreibt.
Ein fertiger untergeordneter Prozess hängt in der Prozesstabelle als Zombie-Prozess herum, bis der übergeordnete Prozess den untergeordneten Prozess "erntet" oder wartet. Dies ist einfach der übergeordnete Prozess, der dem Betriebssystem mitteilt, dass dieser untergeordnete Prozess nicht mehr benötigt wird. Es hat alle gewünschten Rückgabewerte gelesen und ist damit fertig. Zu diesem Zeitpunkt räumt das System den Eintrag in der Prozesstabelle auf.
quelle
Dieser Vorgang muss nicht abgebrochen werden.
Nur für den Fall, dass Sie es trotzdem töten möchten (aus welchem Grund auch immer), stellen Sie sicher, dass Sie auf den Kopf schießen. Hier ist ein nützlicher Befehl:
Von https://www.erianna.com/kill-a-linux-zombie-process
quelle
shoot at the head
.