Frage:
Wie kann ich eine App mit Terminal beenden?
Brainmaniac
2019-03-27 19:15:50 UTC
view on stackexchange narkive permalink

Ich möchte bestimmte Anwendungen auf meinem Mac über Terminal beenden.Wie töte ich zum Beispiel "Slack"?Benötige ich die PID-Nummer?

Sieben antworten:
user3439894
2019-03-27 19:26:42 UTC
view on stackexchange narkive permalink

Nein, Sie müssen das PID nicht kennen.

Sie können Folgendes verwenden:

  pkill -x Slack
 

Oder:

  killall Slack
 

Note: Lesen Sie unbedingt die Handbuchseite für den Befehl , den Sie verwenden möchten, um die verschiedenen verfügbaren Optionen anzuzeigenauf den Befehl , , der für seine jeweilige Verwendung relevant sein kann.In Terminal geben Sie ein, z. man pkill und drücken Sie , geben Sie kbd> ein, oder geben Sie einfach den Befehl und einKlicken Sie mit der rechten Maustaste darauf und wählen Sie dann aus: : Open man Page

Matteo
2019-03-28 11:52:25 UTC
view on stackexchange narkive permalink

Sie können AppleScript verwenden, um die Anwendung anzuweisen, das Programm zu beenden:

  osascript -e 'App beenden "Slack"'
 

Dies weist die Anwendung an, das Programm zu beenden, und startet alle Speicher- und Bereinigungsaufgaben.Sie können auch das Signal TERM mit pkill senden. Möglicherweise wird die Anwendung jedoch nicht ordnungsgemäß heruntergefahren

  pkill -x Slack
 
Dies ist die beste Methode, da sie repliziert, was passiert, wenn Sie "Datei> Beenden" aus dem Menü verwenden.
Huh.Ich habe immer "osascript -e" verwendet, um die Anwendung "Slack" zum Beenden zu sagen, aber wenn die kürzere Syntax funktioniert, ist das natürlich vorzuziehen.Dies ist definitiv eine bessere Antwort als alles, was auf "Kill" oder eine seiner Varianten hindeutet.
@TJLuoma Ich denke, wenn Sie das richtige Signal auswählen, ist `pkill` genauso elegant wie jede andere Methode.Ich bevorzuge auch das AppleScript, obwohl ich eine Funktion "Beenden" erstellt habe, um es luftig zu machen.Wenn das Erstellen eines AppleScript-Prozesses jedoch nicht erforderlich ist, sollte "pkill -QUIT -x Slack" in Ordnung sein.
user321134
2019-03-28 03:00:00 UTC
view on stackexchange narkive permalink

Da ich noch nicht den Ruf habe, einen Kommentar abzugeben, sage ich dies als separate Antwort. pkill ohne Flags passt nicht zu einem bestimmten Prozess!Das Ausführen von pkill foo würde beispielsweise auf Prozesse mit dem Namen foo abzielen, aber auch auf Prozesse mit dem Namen foobar .Dies liegt daran, dass reguläre Ausdrücke verwendet werden.

Wenn Sie einen bestimmten Prozess beenden möchten, können Sie ihm das Flag -x übergeben.Zum Beispiel pkill -x foo .Dies verwendet exakte Namen anstelle von regulären Ausdrücken.

In Ihrem Fall reicht beispielsweise pkill -x Slack aus.

BEFio
2019-03-27 22:20:00 UTC
view on stackexchange narkive permalink

Sie können htop installieren (z. B. über brauen ).

Sie müssen dies als root oder mit sudo ausführen.Im Wesentlichen ist es ein Text basierter Aktivitätsmonitor.

Wählen Sie den Prozess aus, den Sie beenden möchten (entweder mit den Pfeiltasten oder einer Maus).

Drücken Sie dann k , um dem Prozess ein Signal zu senden, und dann 9 , um das Signal SIGKILL auszuwählen.

scohe001
2019-03-27 23:57:02 UTC
view on stackexchange narkive permalink

Ich bin mir bei Slack nicht sicher, aber einige Anwendungen führen mehrere Prozesse aus, und Sie möchten möglicherweise nur einen beenden (ich muss dies beispielsweise häufig mit iTunes tun).In diesem Fall können Sie

ausführen
  ps -e |grep -i schlaff
 

Um alle Prozesse zu finden, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird.Die Ausgabe sollte wie folgt aussehen (ohne Header):

  PID TTY TIME CMD
649 Punkte / 1 00:00:00 Bash
 

Diese erste Spalte ist Ihre PID.Sie können dies dann verwenden, um diesen Prozess spezifisch zu beenden:

  kill -9 649
 

Ersetzen von 649 durch Ihre PID, die Sie beim Aufrufen von ps gefunden haben.

kill sendet ein Signal zum Beenden der App.Es ist nicht erforderlich, -9 (kill) zu verwenden, wenn die Anwendung antwortet.Sie riskieren, nicht gespeicherte Daten zu verlieren
In ähnlicher Weise könnten Sie, wenn Sie beispielsweise alle 5 Instanzen eines benannten Prozesses beenden möchten, die Ausgabe von "ps" nach dem CMD-Wert filtern und dann alle ersten Einträge in diesen Zeilen beenden.
@Carl Witthoft, Sie können einfach "killall procname" verwenden, z.`killall Slack` und es tötet alle Vorkommen von _Slack_ oder was auch immer` procname` ist.Keine Notwendigkeit, `ps` zu verwenden!
"Pgrep" ist also ein netter Befehl, der "ps" und "Grip" kombiniert.
mr.robot
2019-10-07 18:09:49 UTC
view on stackexchange narkive permalink

Nein, Sie können pkill verwenden, um eine laufende Anwendung zu beenden.Zum Beispiel -

  pkill Notes
 

Wenn dies fehlschlägt, gibt es einen alternativen Weg

Ruft die Prozess-ID der App mit pgrep ab.Zum Beispiel -

  pgrep Hinweise
 

Um die App zu beenden, verwenden Sie

  töte <process ID>
 
James QU
2020-03-12 07:55:14 UTC
view on stackexchange narkive permalink

Wenn die Anwendung einen Protokollnamen hat, geben Sie unbedingt den vollständigen Namen an, der in den Anwendungen

aufgeführt ist z.B.schließen und dann wieder öffnen

osascript -e 'App beenden "Cisco AnyConnect Secure Mobility Client.app"'

Öffnen Sie / Applications / Cisco / Cisco \ AnyConnect \ Secure \ Mobility \ Client.app/



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...