使用 PM2 启动应用时出现 “Error: listen EADDRINUSE” 错误的解决方案

阅读时长 2 分钟读完

背景

在使用 PM2 启动 Node.js 应用时,可能会遇到 “Error: listen EADDRINUSE” 错误,这是因为在同一台服务器上,同一端口上已经有一个进程在监听此端口。本文将介绍如何解决该问题,并提供示例代码。

解决方案

方案一:关闭占用端口的进程

通过命令行检查该端口的进程 PID(进程 ID):

其中 8080 为端口号。如果该端口已经被占用,可以通过以下命令找到进程 PID:

其中 <PID> 为进程的 ID。这样就可以释放该端口,重新启动应用,解决问题。

方案二:修改应用端口号

如果端口已经被其他应用占用,那么可以修改应用的端口号,修改方式如下:

然后重新启动应用,问题得到解决。

方案三:使用 PM2 的 --force 参数

通过使用 PM2 的 --force 参数来强制启动应用,忽略错误信息:

这种方式可能会造成其他问题和潜在的风险,不建议长期使用。

总结

在实际开发中,避免端口占用问题通常有以下几种方式:

  • 明确指定端口号,并遵守规范,避免重复使用。
  • 在部署应用时自动检测并选择未被占用的端口。
  • 使用专业的应用管理工具,如 Nginx 或 Apache,将多个应用映射到不同的端口上,避免冲突。

以上是针对 PM2 启动应用时出现 “Error: listen EADDRINUSE” 错误的解决方案,希望可以帮助到开发者们。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a0e18048841e9894d26d39

纠错
反馈