当尝试启动我的节点快递服务时,我遇到了臭名昭着的错误"听EADDRINUSE。"
这是我尝试拨打电话的地方:
var server = app.listen(3000, function() {
console.log("listening on port %d", server.address().port);
});
问题是,我无法找到正在运行的任何其他节点进程,也没有显示在端口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。
答案 0 :(得分:0)
当您在这些端口停止程序时,也许您的进程不会停止。 尝试在终端中运行这些命令。
lsof -i:<your port number>
如果你有一张表,那就意味着你的进程没有被杀死,从那个表中复制那个PID并运行这个命令
kill -9 <PID>
这将终止在该端口上运行的进程,之后,您可以将此端口用于您的程序。