先用活动监视器筛选出状态为“(not responding)”的进程名(如zoomus、wechat、mail),再用killall -9逐个强杀;对残留僵死进程,用pkill -f按启动命令模糊匹配终结;最后用ps aux | grep和活动监视器验证清理效果。

Mac上某个程序卡死不动、光标转圈、Dock图标灰掉,图形界面方法全失效,但键盘还能用——这时候必须绕过界面,直击进程底层,用终端命令精准杀死所有处于未响应状态的App。
先确认哪些App当前被系统标记为“未响应”
macOS本身不直接在终端里暴露“未响应”状态字段,但活动监视器(Activity Monitor)的“状态”列会显示“(Not Responding)”,而终端可通过ps + pgrep + 系统日志线索交叉推断。最可靠路径是:先用活动监视器导出实时状态,再转为终端可处理的进程名列表。
打开“聚焦搜索”(Command + 空格),输入活动监视器并回车 → 切换到“CPU”标签页 → 点击顶部“状态”列标题两次,让“(Not Responding)”排到最上方 → 拖动滚动条快速扫视,记下所有状态为“(Not Responding)”的进程名称(例如:ZoomUs、WeChat、Mail)。
【注意:这里记下的名称必须和活动监视器“进程名称”列完全一致——大小写敏感、不含.app后缀、不含路径】
用killall -9批量强杀已确认的未响应进程
回到终端,对每个已确认的未响应进程名,逐个执行强制终止:
输入killall -9 "ZoomUs" → 回车(若名称含空格,双引号不可省)
输入killall -9 "WeChat" → 回车
输入killall -9 "Mail" → 回车
每执行一行,系统不会反馈成功提示;若某进程名不存在,终端会输出No such process,可忽略,继续下一行。
用pkill -f 模糊匹配并终结残留的无窗口僵死进程
有些“未响应”App已关闭窗口但进程仍驻留后台(比如崩溃后自动重启失败的守护进程),它们不会出现在活动监视器主列表,却持续占用资源。这时需靠启动命令特征反向定位。
方法一:查常见GUI应用的典型启动路径
输入pkill -9 -f "Electron.*app\.js" → 杀掉所有以 Electron 启动且含 app.js 的僵死实例
输入pkill -9 -f "java.*-jar.*.jar" → 清理后台 Java GUI 工具残留
方法二:针对你刚记下的某个进程名,扩大匹配范围
比如活动监视器看到“Not Responding”的是“Google Chrome”,但它实际由多个子进程组成,只杀主进程可能不彻底。此时运行:pkill -9 -f "Chrome.*--type=renderer" → 强制终结所有渲染子进程
【-f 参数会让 pkill 匹配整条启动命令,比仅匹配进程名更准,但也更危险——别输错关键词,否则可能误杀Safari或其它浏览器进程】
验证是否全部清理干净
执行ps aux | grep -i "ZoomUs\|WeChat\|Mail" → 若返回结果中只剩含 grep 字样的那一行,说明对应进程已消失
再打开活动监视器,刷新(Command+R),确认“状态”列不再出现“(Not Responding)”字样
最后,在聚焦搜索(Command+空格)中输入任意刚杀掉的App名称,如果无结果返回,说明它已不在运行态,也未被系统自动拉起











