Node.js 中如何使用 PM2 管理进程?

在 Node.js 项目中,进程的管理是一个关键的问题。为了提高项目的可靠性和稳定性,我们需要对进程进行管理。PM2 是一个非常好用的 Node.js 进程管理工具,它能够方便地管理进程的启动、停止、重启、监控等操作。

PM2 的安装

使用 npm 命令进行安装,安装命令如下:

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

PM2 的基本使用

启动进程

使用 PM2 启动一个 Node.js 进程非常简单,只需要使用以下命令即可:

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

这条命令会启动一个名为 app.js 的进程。如果你想启动多个进程,只需要使用同样的命令即可,例如:

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

这条命令会启动两个名为 app1 和 app2 的进程。

查看进程列表

使用以下命令可以查看当前正在运行的进程列表:

--- ----

这会显示所有正在运行的进程的名称、状态、ID、CPU 占用率等信息。

停止进程

使用以下命令可以停止一个进程:

--- ---- ----

这条命令会停止名为 app1 的进程。

重启进程

使用以下命令可以重启一个进程:

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

这条命令会重启名为 app1 的进程。

查看日志

使用以下命令可以查看一个进程的日志:

--- ---- ----

这会打印出名为 app1 的进程的日志。

PM2 的高级用法

除了基本的进程管理,PM2 还提供了一些高级用法,可以帮助我们更好地管理进程。

配置文件

通过配置文件,我们可以自定义进程的启动参数、环境变量、日志路径等信息。一个典型的 PM2 配置文件示例如下:

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

这个配置文件定义了一个名为 app 的进程,它会启动 app.js 文件,并在 /path/to/working/directory 目录下工作。该进程会监视文件的变化(watch),但会忽略 node_modules 目录(ignore_watch)。该进程可以实例化任意数量的节点(instances),模式为集群模式(cluster),同时设置了一个名为 NODE_ENV 的环境变量。该进程的日志会输出到 /var/log/pm2/app.out 和 /var/log/pm2/app.err 文件中,并启用了日志合并功能(merge_logs)。

通过 PM2 API 进行进程管理

PM2 提供了一套 RESTful API,可以通过 HTTP 请求进行进程管理。通过这个 API,我们可以在 Node.js 代码中对进程进行增删改查、日志查看等操作。以下是一个简单的使用 PM2 API 的 Node.js 示例代码:

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

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

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

这个例子展示了如何使用 PM2 API 启动一个名为 app 的进程。

集成 PM2 和监控系统

PM2 可以与一些监控系统集成,比如 Keymetrics、Datadog、New Relic 等,这些系统可以帮助我们实时监控进程的状态、CPU、内存等指标,以及快速发现问题并解决它们。

结论

在 Node.js 项目中,进程管理是一个非常重要的问题。使用 PM2 可以简化进程管理,提高项目的可靠性和稳定性。在本文中,我们介绍了 PM2 的基础和高级用法,以及如何集成监控系统。希望本文对你有所帮助,祝你使用 PM2 管理进程的愉快。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/671c568b9babaf620fb0522a