“Port 4200 is already in use” when running the ng serve command
我正在学习angular 2,并且这是我第一次使用angular CLI项目创建沙箱项目。
我能够运行命令" ng serve",效果很好。 我想阻止它运行,所以我运行了" Control Z"。
当我再次尝试运行" ng-serve"命令时,它提示我"端口4200已在使用中"。
我运行" PS"以获取PID列表,并杀死了angular-cli的PID,然后再次运行" ng-serve",仍然给出了相同的端口使用错误。
这就是我用来终止4200端口上的进度的原因
对于linux用户:
1 | sudo kill $(sudo lsof -t -i:4200) |
您也可以尝试以下方法:
1 | sudo kill `sudo lsof -t -i:4200` |
对于Windows用户:
端口号4200已在使用中。以管理员身份打开cmd。在cmd中键入以下命令:
1 | netstat -a -n -o |
然后,右键单击终端,找到端口号为4200的端口,然后单击查找,在"查找内容"中输入4200,然后单击"查找下一个":
假设您发现pid 18932使用了端口号4200。在cmd中键入以下命令:
1 | taskkill -f /pid 18932 |
对于UNIX:
1 | alias ngf='kill -9 $(lsof -t -i:4200);ng serve' |
现在,从项目文件夹的终端中运行ngf(而不是ng serve)。这将使用端口4200终止所有进程,并运行Angular项目。
以
然后找到
1 | netstat -ano | findstr :4200 |
在这里我有3 PID:
-
红色的是来自" ng-serve"(127.0.0.1:4200)的
LISTENING - 绿色的来自"您的浏览器"
仅杀死端口4200(杀死红色PID):
1 | taskkill /PID 15940 /F |
注意:杀死绿色的仅会导致您的浏览器被强行关闭。
现在您可以执行" ng-serve"以在同一端口4200上启动您的角度应用程序
其他资料:
一线:寻找优化方法之后,这是此答案的单线命令:(特别感谢:约瑟夫·阿尔西纳(Josep Alsina)提供了这些提示)
1 | for /f"tokens=5" %a in ('netstat -ano ^| find"4200" ^| find"LISTENING"') do taskkill /f /pid %a |
在Mac OS X上,您需要以下命令:
请记住,您需要使用Command + C杀死Angular的Web服务器。
不是ctrl + Z,
您必须运行stop ctrl + C
使用以下命令杀死ng:
1 | pkill -9 ng |
使用
如果要退出
您应该尝试使用上述命令在给定端口上运行。
现在,您可以设置
1 | ng serve --port 0 // will get a free port for you |
对于Windows:
打开命令提示符并
类型:
找到您要终止的进程的PID。
类型:
这个16876-是我要杀死的进程的PID-在这种情况下,进程是4200-检查附件。您可以提供任何端口号。
现在,键入:
我正在共享此命令,因为在我的mac上无法执行的两个命令没有完成这项工作:
1 2 3 | sudo kill $(sudo lsof -t -i:4200) sudo kill `sudo lsof -t -i:4200` |
可以进行以下操作,但是如果您在Visual Code中使用集成终端,请尝试使用计算机终端并添加fowling命令:
1 | lsof -t -i tcp:4200 | xargs kill -9 |
我们可以通过以下命令强行杀死该端口。
1 | kill -2 $(lsof -t -i:4200) |
总之,有不止一种解决方案:
1)通过使用另一个端口来定义端口号,
1 | ng serve --open --port 4201 |
2)通过杀死进程
1 2 | ctrl + c // for kill Close all node terminal which is related for running the app. |
3)类型
在命令提示符下
然后找到相关的端口PID并杀死它
4)键入
取得包含端口号的外部地址PID,然后将其杀死
1 | ng serve --port 4201 --live-reload-port 4200 |
并使用
这应该是一个临时解决方案。
要么
尝试使用列出端口使用情况
并使用手动杀死它
1 | netstat -anp | grep":4200" |
这将告诉您谁拥有港口。
要停止在Windows中运行的所有本地端口,请单独使用此简单注释,而不要使用netstat分别搜索pid,
它找到所有的pid并停止当前正在运行的本地端口,
1 | taskkill /im node.exe /f |
最简单的一行命令:
1 | sudo fuser -k 4200/tcp |
只需重新启动您正在使用的IDE,即可正常工作。
使用ctrl + z,可将程序置于后台。
在Linux上,您可以使用以下命令将会话恢复为前台:
您无需取消该过程。
Ubuntu OS中的VScode终端使用以下命令杀死进程
1 | lsof -t -i tcp:4200 | xargs kill -9 |
就我而言,上述所有方法均无效。
UBUNTU 18.04版本
下面的命令起作用了。
1 | sudo kill -9 $(lsof -i tcp:4200 -t) |
如果使用的是VSCode,则可以选择终止终端并添加新终端。关闭选项卡,然后打开一个新选项卡。它为我工作。
编辑:
使用ctrl + c并按y。如果没有终止终端,则可以继续。
如果要打开Visual Studio的新实例并运行其他应用程序,则可以使用ng serve --port 4401。
对于Ubndu 18.04
须藤lsof -t -i tcp:3000 | xargs杀死-9
当端口未成功终止时发生
因此,此命令将终止它4200或3000或3300任何
您也可以尝试在Visual Studio代码中运行您的应用程序-:
1 | ng serve --open --port 4201 |
您可以提供任何端口号。
终止进程并关闭用于在该端口上运行应用程序的终端。
如果是Linux操作系统,则可以使用fuser -k 4200 / tcp
不必杀死整个过程或使用
它说已经在使用4200端口运行服务,请使用另一个端口代替4200。下面的命令可以解决该问题
ng serve --port 4300
如果在CMD和IDE中都编译有角度的JS代码,则会发生此问题。在CMD中,只要在IDE中更改您的角度JS代码,然后您的IDE想要占用相同的端口(即4200已被CMD占用),您的角度JS代码就会自动编译
因此,有一个针对此问题的简单解决方案,只需在IDE中编译代码时关闭cmd。
每当我不得不杀死端口时,我都面临着同样的问题。
我尝试使用
我也遇到了同样的错误,味精,所以我尝试了ng serve --port 12012,它工作正常。
在linux mint 17上,这是有效的。
可以在
1 2 3 4 5 6 7 | "defaults": { "styleExt":"css", "component": {}, "serve": { "port": 4205 } } |
另外,有必要将其添加到您的
1 2 | "ng":"ng", "start":"ng serve" |
1 | Port 4200 is already in use. Use '--port' to specify a different port |
这意味着您已经在端口4200上运行了另一个服务。
你也可以。关闭其他服务。运行ng时使用
像这样:
1 | ng serve --port 9001 |
需要注意的另一件事是,在某些计算机上,域本地主机可能无法工作。
您可能会看到一组数字,例如127.0.0.1。当您执行ng服务时,它应显示
您正在运行服务器的URL,因此请务必阅读计算机上的消息
查找确切的开发URL。
netstat -plnet
tcp 0 0 127.0.0.1:4200 0.0.0.0:* LISTEN 1001 63955 7077 / ng
杀死-9 7077
再次开始您的服务。
对于Windows用户:
步骤1.端口号4200已在使用中。以管理员身份打开cmd。在cmd中键入以下命令:
1 | netstat -a -n -o |
在此处输入图片说明
找到您要终止的进程的PID。
步骤2.在cmd中执行命令:
1 | taskkill /F /PID 6500 |
步骤3:现在,键入:
在Windows中;在运行您的ng服务的命令提示符下,只需单击并按以下键:
1 | ctrl + c |
它将询问您:
然后输入
作为任何更改之后的第一步,我先使用
对我唯一有效的方法是重新启动系统/设备...
使用JetBrains的Webstorm IDE。
我也面临类似的问题,而问题基本上是我在Powershell中打开了多个正在运行的终端。因此,请确保您按Ctrl + c组合了所有其他按钮。
我为此遇到了很大的麻烦,甚至尝试了许多其他端口,却一无所获。
我做了
希望这对其他有相同问题的人有用。
要在Windows OS中解决此问题,请打开"任务管理器",然后终止该过程。
任务管理器
似乎另一个程序正在使用您的默认端口4200。好的事情是,高于4200的端口通常是免费的。只是选择另一个。例如:
1 | ng serve --port 4210 |
关闭命令提示符(cmd),然后使用文本编辑器终端或仅使用cmd运行命令。
就我而言,这是问题所在,我是如何解决的。
大多数情况下,是使用命令提示符创建的角度应用程序。那么您尝试在文本编辑器内部运行应用程序终端。每当您尝试保存时,您都可以在Windows命令提示符下看到一些正在运行的东西。因此只需将其关闭并在文本编辑器的终端中运行命令即可。
在本地主机之外访问项目
例:
1 | ng serve --host 192.168.2.2:7006 |
ng serve --port 122345对我来说很好。