Windows环境下如何杀死除VS Code关联外的所有Node进程
解决方案
直接执行的Shell命令
方案1:基于端口特征过滤(匹配你给出的场景,保留监听在127.0.0.1的VS Code关联Node进程)
先执行预览命令确认要终止的进程PID,避免误杀:
netstat -lntp | grep node | grep -v '127.0.0.1' | awk '{print $7}' | cut -d'/' -f1 | uniq
确认输出的PID都是需要清理的进程后,执行终止命令:
netstat -lntp | grep node | grep -v '127.0.0.1' | awk '{print $7}' | cut -d'/' -f1 | uniq | xargs kill -9
方案2:基于进程特征过滤(更通用,避免误杀你自己启动的127.0.0.1本地Node服务)
VS Code远程关联的Node进程都会带vscode相关特征,直接过滤排除即可,先预览:
ps -ef | grep node | grep -v vscode | grep -v grep | awk '{print $2}'
确认后执行终止:
ps -ef | grep node | grep -v vscode | grep -v grep | awk '{print $2}' | xargs kill -9 2>/dev/null
末尾加2>/dev/null是为了避免无匹配进程时抛出报错信息。
封装为NPM脚本
打开项目的package.json文件,在scripts字段中新增如下配置:
{ "scripts": { "kill-node": "ps -ef | grep node | grep -v vscode | grep -v grep | awk '{print \\$2}' | xargs kill -9 2>/dev/null || true" } }
注意这里awk的$2需要转义为\\$2,末尾加|| true是为了避免无进程可杀时npm抛出非0退出码报错。
后续需要清理进程时,直接执行即可:
npm run kill-node
注意事项
- 首次使用前务必先执行预览命令确认筛选的PID符合预期,避免误杀重要进程
- 如果需要额外保留其他特定Node进程,只需在命令中新增
grep -v 关键词过滤规则即可,比如要保留pm2托管的Node进程,就加| grep -v pm2 - 无需强制终止的场景可以把
kill -9换成kill,更温和
内容的提问来源于stack exchange,提问作者Cheetara
相关产品推荐
相关产品推荐

