如何使用 PM2 进行 Node.js 进程的自动重启

阅读时长 6 分钟读完

在使用 Node.js 构建 Web 应用程序时,我们经常会遇到应用程序因错误而奔溃的情况。为了解决这个问题,我们可以使用 PM2 进行进程的自动重启。PM2 是一种先进的进程管理器,它可以轻松地管理我们的 Node.js 服务器进程。

下面是一份使用 PM2 进行 Node.js 进程自动重启的指南,让你的应用程序能够在失败时自动重启。

安装 PM2

首先,我们需要安装 PM2。

我们还需要一个 Node.js 应用程序来测试 PM2。以下是一个简单的应用程序,用于在 3000 端口上侦听 HTTP 请求,并返回 “Hello, World!”。

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

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

------------------- -- -- -
  ------------------- ------- -- ------------------------
---
展开代码

我们将这个代码存储在一个名为 server.js 的文件中。

现在,我们可以使用以下命令启动应用程序:

运行后将在控制台看到 Server running at http://localhost:3000,同时我们可以在浏览器中访问地址 http://localhost:3000,看到 “Hello, World!” 的输出。

使用 PM2

接下来,我们将使用 PM2 进行进程管理。以下是一些基本的 PM2 命令。

  • pm2 start: 启动 Node.js 应用程序。
  • pm2 stop: 停止 Node.js 应用程序。
  • pm2 restart: 重启 Node.js 应用程序。
  • pm2 list: 显示当前正在运行的应用程序列表。
  • pm2 logs: 显示应用程序的日志。

我们可以使用以下命令使用 PM2 启动之前编写的应用程序。

运行后,我们可以使用以下命令来查看我们的应用程序是否正在运行。

输出类似如下内容:

我们可以使用以下命令来查看应用程序的日志。

输出类似如下内容:

我们还可以使用以下命令停止应用程序。

现在我们已经使用 PM2 启动和停止了我们的应用程序。但是,如果我们想在应用程序失败时自动重启呢?

自动重启

PM2 允许我们使用 --watch 选项监视应用程序的文件更改,并在更改时自动重启应用程序。以下是使用 --watch 选项启动应用程序的命令。

接下来,我们将更改应用程序代码,使其失败并尝试自动重启。

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

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

------------------- -- -- -
  ------------------- ------- -- ------------------------
---
展开代码

我们使用了 throw new Error('Failed!') 表示应用程序出现错误。

首先,我们使用以下命令启动应用程序,并启用 --watch 选项以自动重启应用程序。

接下来,我们访问应用程序终端会自动抛出错误,PM2会自动停止应用程序并重新启动它。

输出类似如下内容:

我们可以在应用程序主文件的根目录中添加 ecosystem.config.js 文件,对应用程序的配置进行更多的定制。

-- -------------------- ---- -------
-------------- - -
  ---- - --
    ----- ---------
    ------- --------------
    ----- ---
    ------ ------
    ---- -
        ----------- --------------
    --
    --------------- -
        ----------- -------------
    -
  --
-
展开代码

现在我们已经成功地使用 PM2 进行了 Node.js 进程自动重启的指南。当我们的应用程序出现问题时,它会自动停止和重启应用程序,从而使我们的应用程序保持在线。

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

纠错
反馈

纠错反馈