Wie kann ich einen Prozess beenden, der nicht stirbt?

18

Ich kann einen Prozess nicht mit einer der mir bekannten Techniken ("Beenden erzwingen" in Activity Monitor top, killallvom Terminal aus) beenden und frage mich, ob ich einige zusätzliche Schritte unternehmen kann.

Bildbeschreibung hier eingeben

~ $ sudo killall -KILL 77439
Password:
No matching processes were found
~ $ killall -KILL 77439
No matching processes belonging to you were found
~ $ killall 77439
No matching processes belonging to you were found
~ $ killall Mathematica
No matching processes belonging to you were found

FWIW der Prozess ist "Mathematica", den ich weder nach Namen noch nach PID neu starten, beenden oder beenden erzwingen oder probieren kann, und er scheint einige seltsame Nebenwirkungen zu haben (Screenshots werden nicht angezeigt, können den Papierkorb nicht leeren, und kann nicht einmal das System herunterfahren).

Gibt es zusätzliche Schritte, die unternommen werden können, um einen Prozess, der sich schlecht benimmt , wirklich wirklich zu beenden?

orome
quelle
Finden Sie diesen Prozess mit top im Terminal?
Pierobon
1
Wenn dieses Problem das nächste Mal auftritt, fügen Sie ps alx | egrep '[ /](PID|Math)'Ihrer Frage die Ausgabe von hinzu .
Dan
@ DanielAzuelos: Guter Tipp. Wird besorgt.
orome

Antworten:

35

killalltötet nach Prozessname (was definitiv nicht 77439 und höchstwahrscheinlich auch nicht Mathematica ist). Sie können stattdessen kill 77439oder (wenn dies fehlschlägt) kill -9 77439verwenden (aber wenn der Prozess wirklich nicht funktioniert, kann das Problem nur durch einen Neustart behoben werden).

Aufgrund der Art und Weise, wie das Senden / Verarbeiten von Signalen (wie kill -9) in Unix / OS X funktioniert, gibt es Situationen, in denen ein Prozess nicht beendet werden kann. Ein typisches Beispiel hierfür ist, dass ein Prozess beim Zugriff auf ein externes Gerät hängen bleibt und niemals die Kontrolle zurückerhält. In solchen Situationen ist ein Neustart der einzige Weg, um den Prozess loszuwerden.

nohillside
quelle
2
Kill hört sich so an, als ob es so verlaufen sollte, wie es heißt, aber eigentlich sollte es "Send Interrupt Signal" heißen, da es viele verschiedene Arten von Kills gibt, die es ausführen kann. Die Verwendung der Parameter -9verwendet im Wesentlichen die mächtigste Form der Beendigung mit extremen Vorurteilen ...
stuffe
1
$ kill -9 PID macht immer den Trick für mich, auch wenn es so invasiv ist.
Pierobon
So scheint es, als ob Mathematica sich nur ungewöhnlich schlecht benimmt. Am Ende musste ich das Herunterfahren erzwingen (reguläres Herunterfahren hing). Ich habe dieses Problem mit keiner anderen App, aber Mathematica hat es mehr als einmal gehabt.
orome
Im Folgenden finden Sie einige Details dazu, was dazu führen kann, dass Prozesse hängen bleiben.
GDP2
Ich werde -9 töten. Das einzige Mal, dass ich einen "sudo kill -9" -Fehler hatte, war auf einem System, das komplett überlastet war und trotzdem neu gestartet werden musste.
MikeP
-3

Unter MacOS Mojave 10.14 Beta 1 musste ich Folgendes ausführen, um Traktion zu erhalten:

sudo xcscontrol --reset   
Ed Salter
quelle
2
Was genau macht das / warum wird es benötigt?
pkamb
xcscontrolist Xcode Server Control und scheint keine Korrelation zu einem schlecht verhaltenen Prozess zu haben?
Matt Sephton