“4200端口已被使用”;执行ng serve命令时

我正在学习angular 2,这是我第一次使用angular CLI项目创建一个沙盒项目。

我能够运行命令“ng serve”,它工作得很好。我想让它停止运行,所以我运行了“控制Z”。

当我再次尝试运行“ng-serve”命令时,它提示我“端口4200已被使用”。

我运行“PS”来获得PID列表,并杀死了angular-cli的PID,然后再次运行“ng-serve”,它仍然给出相同的端口使用错误。

472446 次浏览
netstat -anp | grep ":4200"

这会告诉你谁得到了端口。

这是我用来杀死端口4200的进程

linux用户:

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

你也可以试试这个:

sudo kill `sudo lsof -t -i:4200`

windows用户:

端口号4200已被使用。以管理员身份打开cmd。在cmd中输入以下命令:

netstat -a -n -o
然后,在终端上右键单击,找到端口号为4200的端口,然后单击“find”,在“find what”中输入4200,然后单击“find next”: 假设您发现pid 18932使用了端口号4200。在cmd中输入以下命令:

taskkill -f /pid 18932

UNIX:

alias ngf='kill -9  $(lsof -t -i:4200);ng serve'

现在在终端中从项目文件夹中运行神经生长因子(而不是ng服务)。这会杀死所有使用4200端口的进程,并运行你的Angular项目。

不要用ctrl+Z,要停止进程一定要用ctrl+C

我也遇到了同样的错误信息,所以我尝试了Ng发球——端口12012,它工作得很好。

将你的cmd.exe打开为administrator

然后找到port 4200PID

netstat -ano | findstr :4200

Pid for port 4200

这里我有3个PID:

  • 红色的是来自"ng-serve" (127.0.0.1:4200), LISTENING
  • 绿色的来自"your browser"

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

taskkill /PID 15940 /F

注意:杀死绿色只会导致你的浏览器被强制关闭。

taskkill pid 15940

现在你可以使用ng-serve在4200端口上启动angular应用




附加内容:

在寻找优化方法之后,下面是这个答案的一行命令:(特别感谢:约瑟Alsina提供的提示)

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服务器。

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

和使用localhost:4201访问

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

尝试使用
列出端口使用情况 lsof -i:4200 < br > 并使用
手动杀死它 sudo kill -9 <Process PID using port 4200> < / p >

我们可以通过以下命令强制终止端口。

kill -2 $(lsof -t -i:4200)
如果你同时在CMD和IDE中编译angular JS代码,就会出现这个问题。在CMD中,当你在IDE中修改angular JS代码时,你的angular JS代码会自动编译,然后你的IDE想要占用相同的端口,即4200,这个端口已经被CMD占用了 因此,这个问题有一个简单的解决方案,在IDE中编译代码时关闭cmd
当你使用Ctrl+Z时,你将挂起一个正在运行的任务,而不是终止它。您可以稍后使用命令fg来恢复任务。 如果你想退出ng serve,你应该使用Ctrl+C来代替,这也会释放4200端口

每次我必须关闭端口时,我都面临着同样的问题。

我尝试了./node_modules/.bin/ng serve --proxy-config proxy.conf.json --host 0.0.0.0代替npm start和它的工作

您还可以尝试在visual studio代码中运行应用程序-:

ng serve --open --port 4201

你可以给出任何端口号。

最简单的一行命令:

 sudo fuser -k 4200/tcp

Windows:

打开命令提示符

类型:netstat -a -o -n

找到要终止的进程的PID。

类型:taskkill /F /PID 16876

这个16876 -是我想要杀死的进程的PID -在这种情况下,进程是4200 -检查所附文件。你可以给出任何端口号。

enter image description here

现在,输入:ng serve在相同的端口4200上启动你的angular应用

在linux mint 17上,这是工作的。

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

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

"defaults": {
"styleExt": "css",
"component": {},
"serve": {
"port": 4205
}
}

此外,有必要将此添加到package.json:

"ng": "ng",
"start": "ng serve"

它说我们已经在运行端口为4200的服务,请使用另一个端口而不是4200。下面的命令就是解决问题

Ng serve——端口4300

而不是杀死整个进程或使用ctrl+z,你可以简单地使用ctrl+c来停止服务器,并且可以愉快地使用ng serve command而不需要任何errors,或者如果你想在不同的端口上运行,只需使用ng serve --port portno(ex: ng serve --port 4201)这个命令。

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

这意味着您已经在端口4200上运行了另一个服务。如果是这样的话 你可以选择。关闭另一个服务。运行ng时使用--port标志

 ng serve --port 9001
另一件需要注意的事情是,在某些机器上,域localhost可能无法工作。 您可能会看到一组数字,例如127.0.0.1。当你发球时,它应该显示出来 你知道服务器运行在哪个URL上,所以一定要在你的机器上阅读消息

如果是Linux操作系统,可以使用fuser -k 4200/tcp

终止进程并关闭你在该端口上运行应用程序的终端。

Ng serve -port 122345对我来说工作正常。

netstat -plnet

tcp 00 127.0.0.1:4200 0.0.0.0:* LISTEN 1001 63955 7077/ng

杀死-9 7077

再次开始你的ng发球。

使用这个命令杀死ng:

pkill -9 ng

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

ctrl + c
它会问你:Terminate batch job (Y/N)? 然后输入Y

作为任何更改后的第一步,我使用ng build,然后使用ng serve。它工作起来没有任何问题。

ng serve --port <YOUR_GIVEN_PORT_NUMBER>

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

唯一对我有用的是重启我的系统/设备…

使用Webstorm IDE由JetBrains。

只要重新启动您正在使用的IDE,它就可以工作了。

访问本地主机外的项目

例子:

ng serve --host 192.168.2.2:7006

如果你正在使用VSCode,你可以选择杀死终端并添加一个新终端。关闭选项卡并打开一个新选项卡。这对我很管用。

< p >编辑: 使用ctrl+c并按y。在没有终止终端的情况下,您可以继续。 如果你想打开一个visual studio的新实例并运行一个不同的应用程序,你可以使用ng serve——port 4401.

总之,解决方案不止一种: 1)使用另一个端口定义端口号

ng serve --open --port 4201

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

用ctrl + z你把程序放在后台。 在Linux上,您可以使用以下命令将会话恢复到前台

fg ng serve

您不需要终止进程。

我分享这两个命令在我的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

为Ubndu 18.04 Sudo lsof -t -i tcp:3000 | xargs kill -9

当端口终止失败时发生 因此,这个命令将终止它4200或3000或3300任何

要停止在windows中运行的所有本地端口,只使用这个简单的注释,而不是使用netstat单独搜索pid,

它会找到所有的pid并停止当前正在运行的本地端口,

taskkill /im node.exe /f

我也遇到过类似的问题,问题基本上是我在powershell中打开了多个运行终端。其他的都按Ctrl+c。

在我的案例中,以上提到的方法都不起作用。

Ubuntu 18.04版本

下面的命令起作用了。

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

现在你可以设置--port 0来获得一个空闲端口。

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

我在这方面遇到了很大的麻烦,我甚至尝试了许多其他端口,但一无所获。

我做了npm install typescript@2.8,它解决了问题。由于某种原因,typescript版本导致冲突,使用yarn或ng serve无法工作。

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

如果是Windows操作系统,请打开“任务管理器”,并终止该进程。

TaskManager

似乎另一个程序正在使用您的默认端口4200。好消息是,4200以上的端口通常是免费的。再选一个吧。例如:

ng serve --port 4210

关闭命令提示符(cmd),然后使用文本编辑终端或只使用cmd来运行命令。

对我来说,这就是问题所在,以及我是如何解决它的。

大多数时候你是使用命令提示符创建angular应用的。然后你试着在文本编辑器中运行应用终端。当你试图保存时,你可以看到一些东西在Windows命令提示符上运行。因此,只需关闭它,并在文本编辑器的终端中运行命令。

VScode终端在Ubuntu操作系统中使用以下命令杀死进程

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

windows用户:

步骤1。端口号4200已被使用。以管理员身份打开cmd。在cmd中输入以下命令:

netstat -a -n -o

enter image description here

找到要终止的进程的PID。

步骤2.在cmd中执行命令:

taskkill /F /PID 6500

第三步:现在,输入:

ng serve在相同的端口4200启动你的angular应用

在我的Ubuntu上,我输入了crl+z来关闭终端,之后我无法访问localhost:4200。唯一的解决办法是:

$ sudo fuser -k 4200/tcp

然后重新启动服务器。

Port 4200已被使用。使用-port指定不同的端口错误原因 系统中使用端口号为4200的现有应用程序(不是angular)。这种情况非常罕见。在这种情况下,你需要修改angular应用的端口号,如下所示。 你已经运行了ng服务,要退出应用程序,你输入Control Z (Ctrl+Z),然后你输入ng serve,然后你会得到port 4200 is already in use_ error。在这种情况下,你需要终止之前的进程

要更改angular应用程序的端口号,请使用下面的命令

ng serve --port 4201

现在输入ng serve

我们的angular应用程序将运行在http://localhost:4201

修复端口4200已在使用错误在Mac &Linux操作系统(Ubuntu等)使用以下命令

sudo kill $(sudo lsof -t -i:4200) Or
sudo kill `sudo lsof -t -i:4200` Or
sudo lsof -t -i tcp:4200 | xargs kill -9

在windows操作系统中打开命令提示符。使用以下命令修复端口4200已在使用错误。

netstat -a -n -o | findStr "4200"`

获取进程id并使用以下命令杀死该进程

taskkill -f /pid 11128

如果你已经安装了npm,如果你正在使用angular,我假设你已经安装了npm,那么你可以简单地运行npx kill-port 4200。就是这样。

ng serve --open

分配一个本地主机来承载项目。在同一目录下运行相同命令时,系统会在端口已经被使用的地方分配localhost:port。要覆盖这个问题,可以很容易地运行以下命令:

ng serve --port

这将为项目分配一个新的端口,而不会干扰当前的本地主机端口。

用这三个命令:

  1. Netstat -anb | findstr 4200
  2. Netstat -anbo | findstr 4200
  3. -f /pid 22416

Cmd =比;是否应该以管理员身份运行

首先:检查它是否在监听

C:\Windows\system32>netstat -anb | findstr 4200

输出:

TCP  127.0.0.1:4200     0.0.0.0:0      LISTENING

第二:寻找IP

C:\Windows\system32>netstat -anbo | findstr 4200

输出:

TCP    127.0.0.1:4200     0.0.0.0:0    LISTENING    22416

第三:杀死端口

C:\Windows\system32>taskkill -f /pid 22416

成功:PID为22416的进程已被终止。

你应该找到自己的pid;

对我来说,这个cmd工作Ubuntu

sudo fuser -k 4200/tcp for killing other ports