PM2 启动 Node.js 应用时出现 “Error: listen EADDRINUSE” 错误的解决方法

阅读时长 2 分钟读完

PM2 启动 Node.js 应用时出现 “Error: listen EADDRINUSE” 错误的解决方法

当使用 PM2 启动 Node.js 应用时,有时会出现 “Error: listen EADDRINUSE” 错误,这表示该端口已经被占用。本文将介绍如何解决这个问题。

  1. 查找占用端口的进程

首先,我们需要查找哪个进程占用了该端口。可以使用以下命令:

例如,如果端口号为 3000,可以使用以下命令:

该命令会输出占用该端口的进程信息。

  1. 结束占用该端口的进程

如果找到了占用该端口的进程,可以使用以下命令结束该进程:

例如,如果占用该端口的进程号为 1234,可以使用以下命令结束该进程:

  1. 修改应用端口号

如果该端口被其他应用占用,可以修改应用的端口号。可以在应用代码中修改端口号,或者在启动命令中指定端口号。

例如,在应用代码中修改端口号:

-- -------------------- ---- -------
----- ---- - ----------------

----- ---- - -----

----- ------ - ----------------------- ---- -- -
  -------------- --------
---

------------------- -- -- -
  ------------------- -- --------- -- ---- ----------
---

在启动命令中指定端口号:

  1. 避免端口冲突

为了避免端口冲突,可以在启动应用时指定一个随机端口号。可以使用以下代码生成一个随机端口号:

在启动命令中指定环境变量:

这将在启动应用时自动选择一个空闲端口。

总结

在使用 PM2 启动 Node.js 应用时,遇到 “Error: listen EADDRINUSE” 错误时,可以通过查找占用端口的进程、结束占用该端口的进程、修改应用端口号或者避免端口冲突来解决该问题。希望本文对解决该问题有所帮助。

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

纠错
反馈