GitBash中无法终止ng serve进程 如何操作可继续使用当前终端
不关闭GitBash终止ng serve进程的解决方案
方法1:通过后台任务号直接终止(最高效)
该方案适用于ng serve是在当前GitBash终端启动的场景:
- 执行
jobs命令,查看当前终端的后台任务列表,ng serve对应的任务会标注任务编号,例如返回结果中的[1]+ Running ng serve,数字1就是任务编号 - 执行
kill -9 %<任务编号>即可强制终止进程,例如任务编号为1时运行kill -9 %1,操作完成后当前终端可正常使用,无需重启
方法2:通过端口号一键终止
ng serve默认占用4200端口,无需查找PID即可直接杀死对应进程:
- 若使用默认4200端口,直接运行命令:
kill -9 $(lsof -t -i:4200) - 若自定义了启动端口,将命令中的
4200替换为实际使用的端口即可
方法3:通过PID定向终止
如果上述方法不适用,可以先定位进程PID再执行杀死操作:
- 执行
ps aux | grep "ng serve",返回结果的第二列即为ng serve对应进程的PID;如果返回结果过多不好筛选,也可以通过端口查PID:执行netstat -ano | findstr :4200,返回结果最后一列就是对应PID - 执行
kill -9 <对应PID>即可强制终止进程
补充说明
之前使用Windows原生taskkill命令无效的核心原因是GitBash为类Unix模拟环境,原生Windows命令对GitBash内启动的子进程权限适配存在问题,使用GitBash内置的kill命令适配性更高,不会出现无法终止的情况。
内容的提问来源于stack exchange,提问作者Patrick McDermott
相关产品推荐
相关产品推荐

