題:
如何使用終端退出應用程序?
Brainmaniac
2019-03-27 19:15:50 UTC
view on stackexchange narkive permalink

我想使用終端退出Mac上的某些應用程序。例如,如何殺死“ Slack”?我需要它的PID號嗎?

七 答案:
user3439894
2019-03-27 19:26:42 UTC
view on stackexchange narkive permalink

不,您不需要知道其PID

您可以使用:

  pkill -x鬆弛
 

或者:

  killall鬆弛
 

注意:請務必閱讀您選擇使用的命令手冊頁,以查看可用的各種選項命令,可能與其特定用法有關。在Terminal type 中,例如 man pkill press enter kbd>,或者只是 type command 右鍵單擊,然後選擇打開man Page

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

您可以使用AppleScript告訴應用程序退出:

  osascript -e'退出應用程序“ Slack”'
 

這將告訴應用程序退出並啟動所有保存和清除任務。或者,您可以使用 pkill 發送 TERM 信號,但可能是應用程序無法完全關閉

  pkill -x鬆弛
 
這是最好的方法,因為它複製了您在菜單中使用“ File> Quit”時發生的情況。
嗯我一直使用`osascript -e'告訴應用程序“ Slack”退出”,但是如果較短的語法可行,那顯然是更可取的。這絕對是比任何暗示“ kill”或其變體的更好的答案。
@TJLuoma我認為,如果您選擇正確的信號,則“ pkill”與任何其他方法一樣優美。我也很喜歡AppleScript,儘管創建了一個功能`quit`使其變得輕而易舉。但是,如果不需要創建AppleScript進程,則可以使用`pkill -QUIT -x Slack`。
user321134
2019-03-28 03:00:00 UTC
view on stackexchange narkive permalink

由於我尚無評論的名聲,因此我將其作為單獨的答案進行說明。沒有任何標誌的 pkill not 與特定進程不匹配!例如,運行 pkill foo 將定位到名為 foo 的進程,但還將定位到名為 foobar 的進程。這是因為它使用了正則表達式。

如果您想終止特定進程,可以將其傳遞給 -x 標誌。例如, pkill -x foo 。這將使用確切的名稱而不是正則表達式。

例如,在您的情況下, pkill -x Slack 將解決問題。

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

您可以安裝 htop (例如,通過 brew )。

您將需要以root用戶或使用 sudo 來運行它。本質上,這是一個文本 基於活動監視器。

選擇要殺死的進程(使用箭頭鍵或鼠標)。

然後按 k 向進程發送信號,然後按 9 選擇 SIGKILL 信號。

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

我不確定Slack,但是某些應用程序將運行多個進程,您可能只想殺死一個進程(例如,我經常需要使用iTunes來執行此操作)。在這種情況下,您可以運行

  ps -e |grep -i鬆弛
 

查找名稱中不區分大小寫的“ slack”的所有進程。輸出應該看起來像(沒有標題):

  PID TTY TIME CMD
649點/ 1 00:00:00重擊
 

第一列將是您的PID。然後,您可以使用它專門殺死該進程:

  kill -9 649
 

用您通過調用 ps 找到的PID替換649。

kill發送信號以終止該應用程序。如果應用程序正在響應,則不必使用-9(殺死)。您可能會丟失未保存的數據
類似地,如果您確實想殺死某個命名進程的所有5個實例,則可以過濾CMD值上的ps輸出,然後殺死這些行上的所有第一條目。
@Carl Witthoft,您可以簡單地使用`killall procname`,例如`killall Slack`,它將_kill_所有出現的_Slack_或任何`procname`。無需使用`ps`!
因此,`pgrep`是結合了`ps`和`grip`的好命令。
mr.robot
2019-10-07 18:09:49 UTC
view on stackexchange narkive permalink

否,您可以使用pkill終止正在運行的應用程序。例如-

 技巧說明
 

如果失敗,還有另一種方法

使用pgrep獲取應用的進程ID。例如-

  pgrep注意
 

然後退出應用使用

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

如果應用程序具有日誌名稱,請確保提供應用程序中列出的全名

例如關閉,然後重新打開

osascript -e'退出應用程序“ Cisco AnyConnect Secure Mobility Client.app””

打開/ Applications / Cisco / Cisco \ AnyConnect \ Secure \ Mobility \ Client.app /



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 4.0許可。
Loading...