推荐用pkill -f按命令行关键词模糊匹配杀进程,如pkill -f "dev-server";或用pgrep -f加xargs kill分步确认再终止;killall仅适用于进程名明确且无冲突的场景。

Mac系统中某个程序反复启动多个实例、残留后台进程干扰新版本运行,或想批量清理测试脚本产生的临时进程——此时需用终端命令,根据名称中的关键词(如“backup”“test”“dev-server”)一次性定位并杀死所有匹配进程。
用pkill -f 按路径或命令行内容模糊匹配
这一步最灵活,适合进程名不标准、带参数、或实际进程名与App名称不一致的情况(比如用npm start启动的前端服务,真实进程名是node,但命令行里含“dev-server”)。
打开终端,输入:pkill -f "dev-server",回车执行。
该命令会扫描所有进程的完整启动命令(argv[0]及后续参数),只要某一行包含“dev-server”字符串就终止对应进程。注意:-f 参数不可省略,否则只匹配进程名(comm字段),而多数Node/Python脚本进程名都是python或node,无法精准区分。
若要强制终结且跳过确认,加 -9 参数:pkill -9 -f "backup_script"。【一旦执行无法撤销,未保存的数据将直接丢失】。
用pgrep + xargs kill 批量终结(推荐用于精确控制)
当你需要先看清有哪些进程会被杀、再执行,或要组合其他条件(如限定用户、排除某类进程)时,这个方法更安全可控。
第一步:查出所有匹配的PID,仅显示数字,不输出其他信息:pgrep -f "staging-api"。
第二步:把上一步结果作为kill命令的参数,批量发送SIGTERM信号:pgrep -f "staging-api" | xargs kill。
第三步:如果部分进程未退出,改用强制模式:pgrep -f "staging-api" | xargs kill -9。这比逐个kill -9更高效,也避免漏掉重启后的新PID。
注意:若pgrep无输出,说明当前没有命令行含“staging-api”的活跃进程,命令静默结束,不会报错。
用killall 按进程名精确终止(最快但限制多)
适用于进程名本身就很明确、且系统中不会存在同名但无关进程的场景,比如你确定所有叫“MongoDB”的进程都该被清掉。
方法一:普通终止(发送SIGTERM)
输入:killall "MongoDB"。
方法二:强制终止(发送SIGKILL)
输入:killall -9 "WeChat"。
方法三:忽略大小写匹配
输入:killall -I "zoomus"(-I 是大写i,不是小写L)。
⚠️重要提醒:【killall会杀死所有同名进程,包括你可能正在使用的另一个微信账号实例,或后台同步服务】。如果不确定,优先用pkill -f 或 pgrep 先确认。

















