gpt4 book ai didi

node.js - Node Express 说 EADDRINUSE 但端口是免费的

转载 作者:行者123 更新时间:2023-12-01 23:54:28 27 4
gpt4 key购买 nike

当尝试启动我的 node express 服务时,我遇到了臭名昭著的错误“listen EADDRINUSE”。

这是我尝试调用 listen 的行:

var server = app.listen(3000, function() {
console.log("listening on port %d", server.address().port);
});

问题是,我找不到任何其他正在运行的 Node 进程,也没有任何显示在端口 3000 上运行。

以下是我针对这些查询获得的结果:

$ ps aux | grep node
ec2-user 7780 0.0 0.0 110280 848 pts/1 S+ 17:41 0:00 grep node

$ nestat -anp | grep 3000
<nothing>

这真是令人费解。我可以尝试回收这个盒子,但它正在运行一个实时站点,我不愿意这样做。

我还能做些什么来尝试解决这个问题吗?

编辑:阿里,谢谢你提出了我不知何故错过的显而易见的事情。我现在在端口 3300 上启动并运行。但是,当我检查 netstat 时,我也没有在其中看到 3300。这向我暗示我有某种进程在 3000 上运行,但我不知道如何找到。郑重声明,这是一个 AWS Linux AMI。

最佳答案

当您在这些端口中停止程序时,您的进程可能不会停止。尝试在您的终端中运行这些命令。

lsof -i:<your port number>

如果你有一个表那么这意味着你的进程没有被杀死,从那个表中复制那个 PID 并运行这个命令

kill -9 <PID>

这将终止在该端口上运行的进程,在此之后,您可以将此端口用于您的程序。

关于node.js - Node Express 说 EADDRINUSE 但端口是免费的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24853225/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com