Was kann dazu führen, dass "kill -9 pid" fehlschlägt?

7

Ich habe einen Linux-Prozess, der 100% CPU verbraucht, und "kill -9 pid" funktioniert nicht.

Dies ist etwas ähnlich zu: So beenden Sie Prozesse, die nicht auf -9 reagieren

Aber ich bin sicher, dass sich die PID nicht ändert, und dies sind die übergeordneten Prozesse. Ich glaube nicht, dass es auf NFS wartet.

Könnte übermäßiger Netzwerkverkehr ein solches Verhalten verursachen? Irgendwelche anderen Ideen, was dazu führen könnte, dass der Prozess so hängen bleibt, und was kann ich dagegen tun, außer einen Neustart?

DanJ
quelle

Antworten:

11

Wenn ein Prozess nicht auf "kill -9" reagiert, bedeutet dies im Allgemeinen, dass er auf eine Ressource wartet. Manchmal ist das eine Datei oder ein Netzwerk, manchmal hat es einen untergeordneten Prozess, der nicht beendet wurde und darauf wartet, dass er geerntet wird, oder sein übergeordneter Prozess hängt und kann ihn nicht ernten. Im letzteren Fall wird der Prozess in "ps" mit dem Status "Z" für "Zombie" angezeigt.

Paul Tomblin
quelle
2
Und im ersteren - "D" für "unterbrechungsfreien Schlaf"
wRAR
1

Wenn sich der Prozess im unterbrechungsfreien Ruhezustand befindet, können Sie ihn nicht beenden, ohne die Ursache des Ruhezustands zu beseitigen, aber ich glaube nicht, dass er in diesem Zustand CPU verbraucht (und iowait ist nicht Teil der Prozess-CPU-Auslastung, AFAIK). Wenn der Prozess aufgrund von Kernel-OOPS nicht abgebrochen werden kann, sollten Sie ihn neu starten.

wRAR
quelle
1

Fragen Sie, ps auxfwelche untergeordneten Prozesse die Zombie-PID hat, und versuchen Sie zuerst, sie zu töten.

PEra
quelle
Nein, es wird nicht helfen. Und nennen Sie Nicht-Zombie-Prozesse nicht "Zombie".
WRAR
Angenommen, es war ein Zombie ... Entschuldigung für die Naivität :)
PEra