关于angular:运行ng serve命令时,“ Port 4200已经在使用中”

“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项目。


administrator的形式打开cmd.exe

然后找到port 4200PID

1
netstat -ano | findstr :4200

Pid for port 4200

在这里我有3 PID:

  • 红色的是来自" ng-serve"(127.0.0.1:4200)的LISTENING
  • 绿色的来自"您的浏览器"

仅杀死端口4200(杀死红色PID):

1
taskkill /PID 15940 /F

注意:杀死绿色的仅会导致您的浏览器被强行关闭。

taskkill pid 15940

现在您可以执行" 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上,您需要以下命令:

sudo lsof -t -i tcp:4200 | xargs kill -9

请记住,您需要使用Command + C杀死Angular的Web服务器。


不是ctrl + Z,
您必须运行stop ctrl + C


使用以下命令杀死ng:

1
pkill -9 ng


使用Ctrl+Z时,您将挂起正在运行的任务,但不会杀死它。您以后可以使用命令fg继续执行任务。
如果要退出ng serve,则应改用Ctrl+C,这还将释放4200端口。


ng serve --port

您应该尝试使用上述命令在给定端口上运行。


现在,您可以设置--port 0以获得空闲端口。

1
ng serve --port 0 // will get a free port for you


对于Windows:

打开命令提示符并

类型:netstat -a -o -n

找到您要终止的进程的PID。

类型:taskkill /F /PID 16876

这个16876-是我要杀死的进程的PID-在这种情况下,进程是4200-检查附件。您可以提供任何端口号。

enter image description here

现在,键入:ng serve以在同一端口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)类型

netstat -a -n -o

在命令提示符下
然后找到相关的端口PID并杀死它

taskkill /F /PID (pid number)

4)键入netstat -ano|findstr :4200

取得包含端口号的外部地址PID,然后将其杀死

taskkill /PID (pid number)/F


1
ng serve --port 4201 --live-reload-port 4200

并使用localhost:4201访问

这应该是一个临时解决方案。

要么

尝试使用列出端口使用情况
lsof -i:4200
并使用手动杀死它
sudo kill -9


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上,您可以使用以下命令将会话恢复为前台:

fg ng serve

您无需取消该过程。


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


不必杀死整个过程或使用ctrl+z,您可以简单地使用ctrl+c停止服务器,并可以愉快地使用ng serve command而无需任何errors,或者如果要在其他端口上运行,只需使用此命令< x4>。


它说已经在使用4200端口运行服务,请使用另一个端口代替4200。下面的命令可以解决该问题

ng serve --port 4300


如果在CMD和IDE中都编译有角度的JS代码,则会发生此问题。在CMD中,只要在IDE中更改您的角度JS代码,然后您的IDE想要占用相同的端口(即4200已被CMD占用),您的角度JS代码就会自动编译
因此,有一个针对此问题的简单解决方案,只需在IDE中编译代码时关闭cmd。


每当我不得不杀死端口时,我都面临着同样的问题。

我尝试使用./node_modules/.bin/ng serve --proxy-config proxy.conf.json --host 0.0.0.0代替npm start及其工作


我也遇到了同样的错误,味精,所以我尝试了ng serve --port 12012,它工作正常。


在linux mint 17上,这是有效的。

kill -9 $(lsof -t -i:4200)


可以在.angular-cli文件中更改端口。例如:

1
2
3
4
5
6
7
"defaults": {
   "styleExt":"css",
   "component": {},
   "serve": {
     "port": 4205
    }
  }

另外,有必要将其添加到您的package.json中:

1
2
"ng":"ng",
"start":"ng serve"

1
Port 4200 is already in use. Use '--port' to specify a different port

这意味着您已经在端口4200上运行了另一个服务。
你也可以。关闭其他服务。运行ng时使用--port标志
像这样:

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:现在,键入:

ng serve在同一端口4200上启动您的角度应用程序


在Windows中;在运行您的ng服务的命令提示符下,只需单击并按以下键:

1
ctrl + c

它将询问您:Terminate batch job (Y/N)?
然后输入Y


作为任何更改之后的第一步,我先使用ng build,然后使用ng serve。它可以正常工作。


对我唯一有效的方法是重新启动系统/设备...

使用JetBrains的Webstorm IDE。


我也面临类似的问题,而问题基本上是我在Powershell中打开了多个正在运行的终端。因此,请确保您按Ctrl + c组合了所有其他按钮。


我为此遇到了很大的麻烦,甚至尝试了许多其他端口,却一无所获。

我做了npm install [email protected]并且它解决了问题。由于某种原因,打字稿版本引起冲突,无法使用毛线或ng服务。

希望这对其他有相同问题的人有用。


要在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对我来说很好。