我正在学习angular 2,这是我第一次使用angular CLI项目创建一个沙盒项目。
我能够运行命令“ng serve”,它工作得很好。我想让它停止运行,所以我运行了“控制Z”。
当我再次尝试运行“ng-serve”命令时,它提示我“端口4200已被使用”。
我运行“PS”来获得PID列表,并杀死了angular-cli的PID,然后再次运行“ng-serve”,它仍然给出相同的端口使用错误。
我正在学习angular 2,这是我第一次使用angular CLI项目创建一个沙盒项目。
我能够运行命令“ng serve”,它工作得很好。我想让它停止运行,所以我运行了“控制Z”。
当我再次尝试运行“ng-serve”命令时,它提示我“端口4200已被使用”。
我运行“PS”来获得PID列表,并杀死了angular-cli的PID,然后再次运行“ng-serve”,它仍然给出相同的端口使用错误。
当前回答
不要用ctrl+Z,要停止进程一定要用ctrl+C
其他回答
以管理员身份打开cmd.exe,
然后找到4200端口的PID
netstat -ano | findstr :4200
这里我有3个PID:
红色的来自“ng-serve”(127.0.0.1:4200) 绿色的来自"your browser"
只杀死4200端口(杀死红色PID):
taskkill /PID 15940 /F
注意:杀死绿色只会导致你的浏览器被强制关闭。
现在你可以使用ng-serve在4200端口上启动angular应用
附加内容:
一行:在寻找优化的方法之后,下面是这个答案的一行命令:(特别感谢:Josep Alsina提供的提示)
for /f "tokens=5" %a in ('netstat -ano ^| find "4200" ^| find "LISTENING"') do taskkill /f /pid %a
对我来说,这个命令在Ubuntu中是有效的
sudo fuser -k 4200/tcp for killing other ports
ng serve --port 4201 --live-reload-port 4200
并使用localhost:4201访问
这应该是一个临时的解决方案。
or
尝试使用列出端口使用情况 lsof我:4200 并手动杀死它使用 sudo kill -9 <进程PID using port 4200>
我分享这两个命令在我的mac上没有工作:
sudo kill $(sudo lsof -t -i:4200)
sudo kill `sudo lsof -t -i:4200`
下面的一个做到了,但如果你在Visual Code中使用集成终端,尝试使用你的机器终端并添加fowling命令:
lsof -t -i tcp:4200 | xargs kill -9
我也遇到过类似的问题,问题基本上是我在powershell中打开了多个运行终端。其他的都按Ctrl+c。