Ich habe eine App, die nicht stirbt: Sie ist vom Dock verschwunden, aber das Fenster bleibt (mit einem Beachball, wenn ich mit der Maus darüber fahre). Es verbraucht keine CPU, aber ich möchte, dass es verschwindet.
Gibt es etwas Stärkeres als "Force Quit", um eine App wirklich wirklich zu töten?
lion
macos
applications
Ken
quelle
quelle
SIGTERM
im Dialogfeld und im Aktivitätsmonitor.Antworten:
Wenn Sie den Namen der App kennen, können Sie im Aktivitätsmonitor überprüfen, ob sie dort noch ausgeführt wird, und versuchen, sie zu beenden. Wenn dies nicht funktioniert, notieren Sie sich die Prozess-ID (pid) der App. Gehen Sie zum Terminal und geben Sie ein
kill [pid]
und ersetzen Sie "[pid]" durch die Nummer, die Sie zuvor notiert haben. Wenn das nicht funktioniert, versuchen Sie eskill -3 [pid]
und wenn das nicht funktioniertkill -9 [pid]
. Wenn der Prozess von einem anderen Benutzer gehört (dies ist wahrscheinlich nicht), müssen Sie ersetzenkill
mitsudo kill
und Ihr Kennwort eingeben , wenn Sie dazu aufgefordert.Wenn die App nicht im Aktivitätsmonitor angezeigt wird oder nicht
kill
angezeigt werden konnte, kann es sein, dass das Fenster an einem anderen Ort hängen bleibt und die App einfach nicht mehr ausgeführt wird. In diesem Fall kann es manchmal (nicht immer) funktionierenkillall SystemUIServer
oderkillall Dock
.Wenn dies nicht funktioniert, müssen Sie sich abmelden und wieder anmelden oder einen Neustart durchführen. Die wenigen Male, die ich bis zu diesem Punkt gekommen bin, war die App so blockiert, dass das Abmelden oder Herunterfahren verhindert wurde, sodass ich einen harten Neustart durchführen musste.
quelle
sudo
auch wenn der Prozess mir gehört), ohne dass sich etwas geändert hat. Werdenkillall SystemUIServer
alle meine anderen offenen Anwendungen beeinflussen, wie Fensterpositionen zu vergessen?kill -l
ist -3 SIGQUIT und -9 ist SIGKILL ("nicht fangbarer, nicht ignorierbarer Kill").man kill
den Befehl run aus (der zu den zehn besten UNIX-Befehlen aller Zeiten gehört), um alle Befehle anzuzeigen.Das Force-Quit-Fenster
killall
undkill
alle Sendeprozesse verarbeiten standardmäßig TERM-Signale. Sie können verwenden,killall -kill
wenn das nicht funktioniert.Wenn Sie
sudo dtrace -n 'proc:::signal-send /pid/ { printf("%s -%d %d",execname,args[2],args[1]->pr_pid); }'
eine Anwendung über das Force-Quit-Fenster ausführen und beenden, wird das Signal normalerweise als -15 (TERM) angezeigt. Wenn Sie jedoch einen Hintergrundprozess (oder eine Anwendung, die nicht im Dock angezeigt wird) über Activity Monitor beenden, wird das Signal normalerweise als -9 (KILL) angezeigt.quelle
SIGKILL
funktioniert, befindet sich die App wahrscheinlich im unterbrechungsfreien Schlaf , und Sie können wirklich nichts tun (außer einen Neustart durchzuführen).Ich hatte Situationen, in denen Force Quit, Activity Monitor
kill
und andere Methoden nicht funktionierten und mein Mac sich deshalb nicht herunterfahren ließ.In diesem Fall
sudo shutdown -r now
funktioniert ein, wenn nichts anderes wäre, und ist wahrscheinlich besser als ein hartes Herunterfahren über den Netzschalter.quelle
Wie in den obigen Antworten ist der stärkste Weg, einen Prozess zu beenden
SIGKILL
, zkill -9 process_id
.Es existieren jedoch Prozesse, die schlicht unmöglich sind
Force Quit
nochkill
. Sie riefen alszombie
Prozesse.Hier ist ein kurzes Skript, das einen
zombie
Prozess für zwei Minuten erstellt:Führen Sie das obige Skript im Terminal aus und Sie erhalten die Ausgabe wie folgt:
Wenn Sie die Statusspalte für den unkillable-Prozess (in diesem Fall: 50571) überprüfen, sehen Sie das
Z
Flag, was bedeutetzombie
.Sie können versuchen, ein beliebiges
kill
Signal zu senden (z. B.kill -9 50571
), und der Vorgang bleibt bestehen. Wie auch immer, es tut Ihrem System nicht viel weh, weil es tatsächlich nicht existiert - es belegt nur die Prozesstabelle.Im obigen Beispiel wird es in 120 Sekunden gelöscht.
quelle
Das solltest du tun:
Ein solcher Prozess wird am besten im abgesicherten Modus entfernt, wenn Sie versuchen, eine Deinstallation durchzuführen.
Prost, Bryan
quelle