Der beste Weg, um Zombie- und D-State-Prozesse unter Linux zu beenden


Antworten:


19

Doppeltippen.

Eigentlich neustarten. Es gibt keine wirkliche Möglichkeit, einen Zombie einfach loszuwerden, aber es gibt keinen Grund dafür, da ein Zombie keine Ressourcen auf dem Computer beansprucht. Es ist ein verwaister Eintrag in einer Prozesstabelle. Init soll es einsammeln, aber es ist ein Fehler aufgetreten. http://en.wikipedia.org/wiki/Zombie_process

Vielleicht fragst du, weil es ein schlimmeres Problem gibt ... bekommst du eine Schiffsladung Zombies, die deinen Prozesstisch durchstreifen? Das bedeutet normalerweise einen Programmfehler oder ein Problem mit einer Konfiguration. Sie sollten nicht viele Zombies im System haben. Ein oder zwei mache ich mir keine Sorgen. Wenn Sie fünfzig von ihnen von Apache oder einem anderen Daemon haben, haben Sie wahrscheinlich ein Problem. Aber das hängt nicht direkt mit Ihrer Frage zusammen ...


1
Es gibt rund 10 Zombie-Prozess
vnix27

Was sind die Prozesse?
Bart Silverstrim

15
/sbin/reboot

Du kannst keinen Zombie töten - er ist bereits tot

Wenn die ppid immer noch existiert, kann durch das Beenden der ppid die Anzahl der Zombies verringert werden.

Sie sollten Prozesse nicht im unterbrechungsfreien Schlaf beenden - normalerweise bedeutet dies, dass sie an E / A gebunden sind, aber IIRC kann auch während eines blockierenden Lesevorgangs von z. B. einem Netzwerk-Socket auftreten.


10

Fehler im zugrunde liegenden Dateisystem oder auf Datenträgern können E / A-gebundene Prozesse verursachen. In diesem Fall versuchen Sie, das Dateisystem, von dem sie abhängig sind, zu "umount -f". Dies bricht alle ausstehenden E / A-Anforderungen ab, die dort offen sind.


2
Und Daten verlieren. Klingt nicht nach einer großartigen Idee.
Michael Hampton

5
Sie verlieren ohnehin Daten durch einen Neustart. Auf diese Weise vermeiden Sie möglicherweise einen Neustart - eine nützliche Funktion auf Produktions- oder Entwicklungssystemen.
Arie Skliarouk

2
Vielen Dank, dies funktionierte für ein Problem, bei dem ein Skript wochenlang nicht mehr auf ein verschwundenes NFS-Mount zugreifen konnte :)
BT643

1
Genau das passiert mir manchmal, wenn ich den lsBefehl auf einem s3fs-Mount ausführe. Der lsProzess wird nicht einmal mit töten, kill -9bis ich das Abmelden mit erzwinge umount -l. Alternativen zu umount?
Marco Marsala

2
Jetzt hängt mein Umount-Prozess als Zombie-STAT "D +"!
Curtis Yallop
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.