在Windows机器上出现错误-监听EADDRINUSE :::3000

12
我已经搜索了很多资料,了解到有一些进程或服务器在3000端口上运行,但我该如何停止它并在3000端口上运行一个新的express http服务器呢?有一些答案提供了Unix环境下的方法...但是如何在Windows环境下使用cmd终端释放端口呢?
使用PID关闭任务对我也没有用。谢谢。

从任务管理器中结束“node”任务。 - Mukul Jain
5个回答

29

打开命令提示符并输入以下内容

netstat -a -o -n

按照端口的顺序逐个检查,直到找到端口3000并查看该进程的ID,然后运行。

taskkill /F /PID (yourprocessID)

有另一种简单的方法可以用单个命令完成这个操作

FOR /F "tokens=4 delims= " %%P IN ('netstat -a -n -o ^| findstr :3000') DO TaskKill.exe /PID %%P

如果您使用的是Windows 7,则可能需要tokens=5,请谨慎使用,因为不同的操作系统具有不同的令牌。


1
这个完美地运行了,感谢@Gnanesh的指导。 - torbenrudgaard
我能够使用“netstat -a -o -n”命令确定PID,但由于“/F”标志,taskkill出现错误。 - user752746
我发现这篇文章非常有帮助:http://tweaks.com/windows/39559/kill-processes-from-command-prompt/ - user752746
@user752746 - 在命令提示符上尝试这个命令:taskkill /pid PIDNO /f https://dev59.com/5moy5IYBdhLWcg3wcNhO - veritas

17
  • 在 Windows 10 中,打开任务管理器并转到 详细信息 选项卡。
  • 您会发现 node.exe 正在运行。
  • 结束该任务即可释放端口。

我使用这种方法成功移除了节点任务。谢谢! - user752746
1
我能找到的最佳答案 - CandleCoder
这最终是我所做的。 - doriansm

2
如果您在Windows中使用VS Code,您需要先终止所有之前的Node-App实例。
之后,在VS Code中打开BASH终端并运行以下命令: cmd "/C TASKKILL /IM node.exe /F"

0

EADDRINUSE 表示已经有另一个正在运行的进程在监听您的 Node 应用程序想要使用并保留的端口。很可能是您之前运行过该应用程序,但它没有正确终止并仍然占用该端口。 因此,我们首先需要终止已经运行的进程,然后才能启动新的服务器。


0

这是因为端口3000已经被另一个进程占用了。 所以只需打开任务管理器,结束该进程/删除所有与Node.js相关的进程即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接