PM2 下 Node.js 进程守护实践

阅读时长 4 分钟读完

前言

在 Node.js 开发过程中,我们需要运行一些长期运行的服务或者任务。一般情况下,我们都使用 Node 命令来运行这些服务或者任务。但是,如果我们的服务或者任务出现了问题,我们可能需要手动重新启动它们。这个过程很麻烦,如果我们的服务或者任务很多,我们会非常繁琐。

为了解决这个问题,我们可以使用 PM2 来管理我们的 Node.js 进程。PM2 可以帮助我们自动监测和管理进程,当进程出现异常时,自动重启进程,保证我们的服务或者任务继续运行。

什么是 PM2

PM2 是一个 Node.js 进程管理器,可以帮助我们实现进程守护、日志管理、进程监控等功能。它可以管理多个 Node.js 进程,自动重启异常进程,并提供 Web 界面和命令行界面给开发人员使用。

如何安装 PM2

在使用 PM2 之前,我们需要先安装它。可以使用下面的命令来安装 PM2

如何使用 PM2

启动进程

使用 PM2 可以非常方便地启动 Node.js 进程:

上面的命令会启动一个名为 app 的进程,它会自动监控 app.js 文件的改变,并在文件改变时自动重启进程。如果你想要启动多个进程,可以通过 --name 参数给它们命名:

上面的命令会启动三个不同的进程,它们分别被命名为 app1app2app3

管理进程

如果你想要查看当前正在运行的进程,可以使用 pm2 list 命令:

上面的命令会列出当前正在运行的进程。除了查看进程外,我们还可以通过 pm2 stop 命令停止进程:

上面的命令会停止名为 app1 的进程。

当进程出现异常时,PM2 会自动重启进程。如果你想手动重启进程,可以使用 pm2 restart 命令:

上面的命令会重启名为 app1 的进程。

如果你想要从进程列表中删除某个进程,可以使用 pm2 delete 命令:

上面的命令会删除名为 app1 的进程。

管理进程日志

PM2 可以帮助我们管理进程的日志。日志文件默认保存在 ~/.pm2/logs 目录下。

如果你想要查看某个进程的日志,可以使用 pm2 logs 命令:

上面的命令会打印名为 app1 的进程的日志。如果你想要打印所有进程的日志,可以使用 pm2 logs 命令:

管理进程监控

PM2 还提供了一个 Web 界面供开发人员使用,我们可以在 Web 界面上查看进程的状态、CPU 和内存占用情况等信息。

可以使用下面的命令来启动 Web 界面:

上面的命令会在本地启动一个 HTTP 服务器,然后在浏览器中访问 http://localhost:9615,即可进入 PM2 的 Web 界面。

示例代码

下面是一个简单的 Node.js 服务示例,使用 express 框架编写:

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

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

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

如果我们想要使用 PM2 来管理这个进程,可以使用下面的命令来启动它:

上面的命令会启动一个名为 hello-world 的进程,并自动监测 index.js 文件的改变。

总结

PM2 是一个非常强大的 Node.js 进程管理器,可以帮助我们实现进程守护、日志管理、进程监控等功能。在实际开发中,我们可以使用 PM2 来管理我们的 Node.js 进程,提高开发效率,降低维护成本。

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

纠错
反馈