Es ist kein reibungsloser Prozess, Prozesse wohl oder übel zu beenden: Daten können verloren gehen, schlecht gestaltete Apps können sich auf subtile Weise selbst zerstören, die nicht ohne eine Neuinstallation behoben werden können gegebene Situation. und was wäre gefährdet. Der Benutzer sollte eine Vorstellung davon haben, was ein Prozess tut oder tun soll und welche Einschränkungen es gibt (Festplatten-IOPS, RSS / Swap), und er sollte abschätzen können, wie viel Zeit ein Prozess mit langer Laufzeit in Anspruch nehmen sollte (z. B. eine Dateikopie). mp3 reencoding, email migration, backup,
Darüber hinaus ist das Senden SIGKILL
an eine PID keine Garantie für deren Tötung. Wenn es in einem syscall oder bereits zombied festsitzt ( Z
in ps
) kann es weiterhin zombied werden. Dies ist häufig der Fall, wenn ein Prozess lange läuft und vergessen wird, bg
bevor versucht wird, kill -9
ihn auszuführen . Ein einfacher fg
Befehl verbindet stdin / stdout erneut und hebt wahrscheinlich die Blockierung des Prozesses auf. Anschließend wird der Prozess in der Regel beendet. Wenn es an einer anderen Stelle oder in einer anderen Form eines Kernel-Deadlocks hängen bleibt, kann der Prozess möglicherweise nur durch einen Neustart entfernt werden. (Zombie-Prozesse sind bereits tot, nachdem sie SIGKILL
vom Kernel verarbeitet wurden (es wird kein weiterer Userland-Code ausgeführt). In der Regel gibt es einen Kernel-Grund (ähnlich wie "blockiert" zu werden, wenn auf einen Systemaufruf gewartet wird), dass der Prozess nicht beendet wird.)
Wenn Sie einen Prozess und alle seine untergeordneten Elemente beenden möchten, gewöhnen Sie sich an , nicht nur die PID selbst, sondernkill
die negierte PID zu verwenden . Es gibt keine Garantie SIGHUP
, dass SIGPIPE
oder SIGINT
andere Signale danach bereinigt werden, und es ist ärgerlich, eine Reihe von nicht genehmigten Prozessen zu bereinigen (nicht vergessen, Mischling?).
Böser Bonus: kill -9 -1
ist etwas schädlicher als kill -9 1
(Nicht als Root ausführen, es sei denn, Sie möchten sehen, was auf einer wegwerfbaren, unwichtigen VM passiert.)