运行ng服务命令时,“端口4200已经在使用”

问题描述:

我正在学习angular 2,并且第一次使用角度CLI项目来创建沙箱项目。运行ng服务命令时,“端口4200已经在使用”

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

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

我运行“PS”获取PID的列表,并为angular-cli终止PID并再次运行“ng-serve”,但它仍然给出相同的端口使用错误。

这是我用来杀死端口进度4200

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

你也可以试试这个:

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

对于Windows用户:

端口号4200已经在使用。在CMD下面命令类型:

netstat -a -n -o 

,然后找到合适的端口号为4200的端口点击终端,点击查找,在“查找内容”中输入4200,然后单击“查找下一个”: 比方说您发现该端口号4200在cmd中使用以下命令PID 18932.类型:

taskkill -f /pid 18932 
+12

这不适用于Windows用户 – Hinrich

+1

虽然我意识到这是正确的解决方案,但这似乎不是一个可怕的解决方案吗?如果我想在另一个目录上运行''ng serve'',该怎么办?以这种方式杀死服务器,然后在其他地方重新启动它,或者我错过了什么? –

+1

您可以指定一个不同的端口: '--port ' – manatico

netstat -anp | grep ":4200" 

这会告诉你谁有这个端口。

+0

是 - ANP?不返回 所以我只是增加了一个空格,因为你的命令是要求“nestat:option需要一个参数--p” – peztherez

+0

你的netstat必须与我的不同。也许添加一个OS标签。 – Joshua

+0

谢谢,它确实有效。 – peztherez

不按CTRL + Z, 你必须停止CTRL运行+ C 它的工作,我检查

+0

同意...同样发生在我身上.. –

我也面临同样的错误消息,所以它ried ng serve --port 12012它工作正常。

+0

这是一个简单且快速的临时解决方法。 – Hinrich

+2

我们不能每次都有新的端口。 – shijin

+0

谁在解答这些问题? – shark1608

打开cmd.exeadministrator

然后找到的PIDport 4200

netstat -ano | findstr :4200 

Pid for port 4200

在这里,我有3个PID:

  • 红一个是“NG - “(127.0.0 1.1:4200),其LISTENING
  • 绿色一个是从 “浏览器”

只杀端口4200(杀红PID):

taskkill /PID 15940 /F 

注:杀绿人会只强制性地关闭浏览器。

taskkill pid 15940

现在你可以做 “NG-服务” 在同一端口上启动您的角度应用4200




其他的东西:

One liner:寻找一种方式来优化这个之后,下面是这个答案的一个衬命令:(特别感谢:Josep Alsina此提示)

for /f "tokens=5" %a in ('netstat -ano ^| find "4200" ^| find "LISTENING"') do taskkill /f /pid %a 
+1

这是非常好解释和解决我的问题在一个非常简单的方法。谢谢! – SrAxi

+3

为windows命令提示符添加了一行代码,谢谢^^。 –

+1

这一个应该选择答案,它为我工作.. – Bharat

在Mac OS X,你需要下面的命令:

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

记住你需要用Command + C来杀死Angular的web服务器。

+1

这在Ubuntu的工作也 – Amir

+0

这对我有效。 – newari

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

,并使用localhost:4201

这应该作为一个临时的解决方案访问。

尝试利用上市
lsof -i:4200
端口使用情况,并杀死它使用手动
sudo kill -9 <Process PID using port 4200>

我们可以有力地杀灭通过以下命令的端口。

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

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

当您使用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及其作品

尝试这样

ng serve --port 4201 
+0

这可能不是每种情况下的解决方案,因为在开发期间,可能会依赖localhost特定的URL和端口来将CORS列入白名单 – user776686

你也可以用这个尝试运行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 - 检查连接file.you可以给任何端口号。现在

enter image description here

,类型:ng serve在同一端口4200

在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"