Mac 如何強制結束 App:快速鍵、Dock 與終端機
在 Mac 上強制結束 App,最快的方法是同時按下 Option-Command-Esc,在跳出的「強制結束」視窗裡選取卡住的 App,再按一下強制結束;同一個視窗也可以從「蘋果」選單 › 強制結束打開,或按住 Control 鍵並按一下 Dock 裡的 App 圖像,選擇強制結束。動手前先試一次 Command-Q 正常結束,Apple 的說明講得很清楚,正常結束時 App 還有機會執行必要動作,例如儲存更動,強制結束就沒有這一步。
強制結束只處理單一沒有回應的 App,如果是整台 Mac 都當住,或自己重新開機,那是另一類問題,可以看Mac 當機或一直閃退怎麼辦。
先正常結束,再考慮強制
游標變成旋轉的彩色等待游標,很多時候是 App 正在忙,不一定是死掉了,匯出大型檔案、同步、讀取一台很慢的網路磁碟,都可能讓視窗卡一陣子再恢復。所以先照這個順序來:
- App 剛好在儲存、匯出或拷貝時,先等一分鐘左右。
- 按一下其他 App 的視窗,其他地方還能動,就代表問題只出在這一個 App 上。
- 切回去按 Command-Q,或從選單列裡它自己的選單選擇結束,App 可能會問你要不要儲存打開的文件。
- 等了夠久還是沒反應,再強制結束。
正常結束和強制結束不是快慢的差別,正常結束是請 App 自己收尾,它可以把文件、設定和快取寫成完整的狀態再離開;強制結束是直接終止程序,還沒寫進磁碟的內容就沒了。
四種強制結束的方法
| 方法 | 怎麼做 | 適合什麼時候 |
|---|---|---|
| 鍵盤快速鍵 | 按 Option-Command-Esc,選取 App,按一下強制結束 | App 視窗蓋住整個螢幕,或選單列點不到 |
| 「蘋果」選單 | 「蘋果」選單 › 強制結束,選取 App,按一下強制結束 | 滑鼠還能用,只是這個 App 不動了 |
| Dock | 按住 Control 鍵並按一下 Dock 裡的 App 圖像,選擇強制結束 | App 在 Dock 裡有圖像 |
| 活動監視器 | 選取程序,按一下停止按鈕,選擇強制結束 | App 沒有視窗也沒有 Dock 圖像,或卡住的是某個輔助程序 |
配備觸控列的 Mac,Esc 位於觸控列左側(Apple)。Dock 的做法寫在 Apple 的 Dock 使用說明裡,它同樣提醒這樣做可能會遺失未儲存的更動。
如果停止回應的是 Finder,就在「強制結束」視窗裡選取 Finder,再按一下重新啟動。Finder 是 macOS 的一部分,會自己重新打開,不存在把它永遠關掉這回事。
輔助程序和背景程序交給活動監視器
「強制結束」視窗只列出有介面的 App,可是很多麻煩出在沒有視窗的程序上,例如瀏覽器的算繪程序、同步輔助程式、選單列小工具、更新程式,這些都要到活動監視器裡找。
- 從應用程式 › 工具程式打開活動監視器。
- 找到對應的程序,沒有回應的程序會標記為(無回應)並顯示為紅色,見 Apple 的活動監視器使用手冊。
- 選取它,再按一下視窗左上角的停止按鈕。
- 先選擇結束,Apple 說這和在 App 裡選擇檔案 › 結束的作用相同,如果結束會造成資料遺失或和其他 App 衝突,程序就不會結束。
- 結束沒有效果,才選擇強制結束,程序會立即結束,已打開的檔案可能遺失資料,正在使用這個程序的其他 App 也可能出問題。
有些程序屬於其他使用者或系統,活動監視器可能會要求輸入管理者密碼,這個提示應該讓你停下來先弄清楚它是什麼,而不是輸入密碼繼續下去。如何查清 Mac 上陌生的程序說明了怎麼從程序名稱找回它屬於哪個 App。
終端機裡的 kill 和 killall,留到最後
終端機指令做的事和活動監視器一樣,只是少了幾道確認,所以只在圖形介面都沒有回應、而且你已經認出這個程序時才用。
下面兩行只查看,不更動任何東西:
pgrep -il appname
ps -axo pid,comm | grep -i appname
把 appname 換成 App 名稱裡的一段,記下第一欄的數字,那就是 PID。
請程序結束:
kill PID
killall AppName
killall 的手冊頁(man killall)寫明,它預設會對你名下所有名稱相符的程序送出 TERM 訊號。TERM 是請程序結束,寫得規矩的 App 會先收尾。但因為 killall 是按名稱比對,一次可能命中好幾個程序,像 Helper 這種名稱,可能同時比對到好幾個不同 App 的輔助程式。
TERM 沒效時,強制的版本送出的是 KILL。signal 手冊頁(man signal)提到,KILL 無法被攔截也無法被忽略,所以程序完全沒有收尾的機會:
kill -9 PID
KILL 就是終端機裡的強制結束,沒儲存的文件會遺失,寫到一半被停下的 App 也可能把那個檔案寫壞。不要為了結束不屬於你的程序加上 sudo,root 名下的程序多半是 macOS 本身、安全軟體或裝置管理工具,停掉它們可能讓網路、登入或備份出問題。
強制結束會遺失什麼
| 內容 | 強制結束之後 |
|---|---|
| 已打開文件裡未儲存的更動 | 會遺失,App 已經自動儲存的部分除外 |
| 正在寫入的檔案 | 可能不完整或損壞,使用前先檢查 |
| 進行中的下載、匯出、上傳 | 通常會中斷,重新打開 App 後再來一次 |
| 這次使用中改過的 App 設定 | App 還沒存下來的話會遺失 |
| 依賴這個程序的其他 App | 可能出現錯誤,直到它們重新連上或你重新打開它們 |
重新打開 App 後,先檢查剛才在編輯的文件。App 有復原檔案夾或版本記錄的話,先去那裡找,別急著重做。
App 被強制結束後又自己回來了
強制結束只會停掉正在執行的那一份程序,管不到是誰啟動了它。如果 App 或某個輔助程式被結束幾秒後又出現,代表有東西在把它重新啟動:
- 登入項目:打開系統設定 › 一般 › 登入項目與延伸功能,檢查「登入時打開」和「允許在背景執行」兩個列表,Apple 在在 Mac 上登入時自動打開項目裡有說明。
- LaunchAgent 和 LaunchDaemon:
~/Library/LaunchAgents、/Library/LaunchAgents或/Library/LaunchDaemons裡的 plist 可以讓 launchd 一直讓這個程序保持執行,它一結束就重新啟動。 - 主要 App:有些輔助程式歸某個主要 App、同步用戶端或廠商的更新程式管,由它們負責重新啟動。
對一個被 launchd 設定為保持執行的程序反覆強制結束,只會陷入結束、重啟、再結束的循環,該做的是關掉對應的登入項目或背景項目,或結束管著這個輔助程式的 App。兩個列表怎麼看,見如何關閉 Mac 開機自動啟動的程式;App 移除了但輔助程式還在執行的情況,見解除安裝後 App 仍在執行。
在 Mole 的「狀態」頁面停止程序
如果你在用 Mole,它的狀態頁面會列出正在執行的 App 和程序,以及各自的 CPU 與記憶體用量。按一下列尾的省略號,或按住 Control 鍵並按一下那一列,就會看到終止和強制結束:
- 對正在執行的 App 選擇終止,Mole 會用正常方式請它結束,App 可以跳出它自己的儲存提示;不是 App 的程序,則送出 TERM。
- 強制結束送出的是 KILL。兩個動作執行前 Mole 都會再確認一次,強制結束的確認會提醒未儲存的資料可能遺失。
屬於 root 或系統帳號的程序、/System 等系統路徑下的執行檔、Finder、Dock 和 WindowServer,以及名稱看起來像 VPN、代理伺服器、安全或裝置管理工具的程序,Mole 都不提供這兩個動作,那些列只顯示一行說明,不顯示按鈕。這和在活動監視器裡操作是同一回事,一樣擋不住 LaunchAgent 再次把程序啟動。
不要這樣做
- 不要只因為游標在轉,就強制結束一個還在儲存或匯出的 App。
- 不要因為某個陌生程序的 CPU 或記憶體數字很高,就直接強制結束,先查清楚它屬於誰。
- 不要用很籠統的名稱執行
sudo killall。 - 不要把強制結束當成每天都卡住的 App 的解法,更新它、檢查外掛,把能重現的步驟回報給開發者。
更新並重新開機後 App 還是常常卡住,可以照 Apple 的 App 疑難排解步驟走一遍:結束再重新打開、重新啟動 Mac、安裝 App 和 macOS 的更新,最後刪除 App 再重新安裝,Apple 也提醒刪除 App 可能會導致 App 中儲存的資料遺失。
常見問題
Mac 強制結束的快速鍵是什麼?
按 Option-Command-Esc,會打開「強制結束」視窗,選取 App 再按一下強制結束。它的作用相當於 Windows 上的 Control-Alt-Delete。
鍵盤沒反應時要怎麼強制結束 App?
改用滑鼠,選擇「蘋果」選單 › 強制結束,或按住 Control 鍵並按一下 Dock 裡的 App 圖像,選擇強制結束。如果什麼都點不動,Apple 給的最後手段是按住電源按鈕最多 10 秒直到 Mac 關機,所有 App 裡未儲存的內容都會遺失。
強制結束會刪掉 App 或它的資料嗎?
不會,它只是終止正在執行的程序。App 本身和已經儲存的檔案都還在原處,遺失的只有還沒儲存的更動。
為什麼強制結束後 App 又出現了?
登入項目、LaunchAgent 或它所屬的主要 App 正在重新啟動它。到登入項目與延伸功能裡關掉對應的項目,或結束管著它的 App。