ember s-端口4200已在使用中

n1bvdmb6  于 2022-09-28  发布在  其他
关注(0)|答案(5)|浏览(209)

我有两个成员项目:项目1,项目2
项目1:embers,端口4200工作正常。我关闭了project1终端,再次尝试启动project2内部的ember,当我这样做时,我得到的端口4200已经在使用中。
端口4200已在使用中。
为什么我会得到这个错误,因为其他的例子已经被杀死了,如何纠正它?

4ioopgfo

4ioopgfo1#

尝试以下操作,

sudo fuser -k 4200/tcp

它将杀死属于端口4200的所有进程。

l7mqbcuq

l7mqbcuq2#

这些答案在Mac上都不起作用,所以我发布了这个解决方案。

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

zbq4xfa03#

我将我的评论扩展为对windows用户的回答,
要查看4200是否已经在使用中,如果是,哪个进程正在保留端口,请运行以下命令

netstat -ano | findstr :4200

这将显示如下结果,

TCP    0.0.0.0:4200           0.0.0.0:0              LISTENING       12784
TCP    [::]:4200              [::]:0                 LISTENING       12784

它将列出使用4200端口的进程列表。您可以在结果中找到进程id。在上面的结果中,pid为12784。我们需要终止此进程以释放端口。

TaskKill.exe /F /PID 12784
iaqfqrcu

iaqfqrcu4#

以下解决方案适用于Mac和Linux。
尝试使用:

ember serve --port 0

每个成员帮助:“传递0以自动选择可用端口”。(在终端中,键入ember help)。
这种方法还可以同时运行多个成员站点。它可以帮助您找到可用端口以及每个端口的不同实时重新加载端口:

ember serve --port 0 --live-reload-port 0

如果在这些情况下出现相同的错误,也可以在终端提示符下输入以下python脚本以标识可用端口:

python -c 'import socket; s=socket.socket(); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'

然后,您可以指定已知可用的端口:

ember serve --port <known_port_1> --live-reload-port <known_port_2>
3hvapo4f

3hvapo4f5#

这并不是一个真正的解决方案,但无论如何我都会发布它,以防有人和我遭遇同样的命运。整个上午,我都试图在任何可用端口上启动应用程序,结果却遇到了No open port found above 0
经过大量的尝试和错误,修复的问题是重新启动Mac。尽管它刚刚重新启动*(ツ)*/¯
更新:似乎在.ember-cli中指定端口和主机会影响这一点。奇怪的是,如果您指定与命令行参数相同的值,那么它可以正常工作_(ツ)_/¯

相关问题