Node.js 进程管理工具 PM2 使用详解

前言

随着 Node.js 逐渐成为了Web 开发的首选技术,越来越多的公司和个人开始采用 Node.js 开发 Web 应用。而 Node.js 的优点也越来越明显,例如:非阻塞 I/O 模型、高并发能力、轻量级等特性,使得 Node.js 在 Web 开发中的应用越来越广泛。在开发大型应用的时候,我们需要同时运行多个 Node.js 进程,而这些进程的管理又是一个问题。节点.js 进程管理工具 PM2 的出现,为我们解决了这个问题,让我们能够轻松地管理多个 Node.js 进程。

本文将介绍 PM2 的基本使用方法和特性,同时也会介绍一些高级技巧和实践经验。

安装 PM2

安装 PM2 非常简单,只需要输入以下命令:

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

PM2 的基本使用

启动进程

使用 PM2 启动进程非常简单,只需要输入以下命令:

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

这里的 app.js 即为你要运行的 Node.js 应用的入口文件。使用 PM2 启动的进程会在后台运行,并且会自动维护进程生命周期,即:如果进程崩溃或者被异常杀死,PM2 会自动重新启动进程。

停止进程

停止 PM2 管理的进程也很简单,只需要输入以下命令:

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

这里的 app.js 是你要停止的进程的入口文件。

重启进程

PM2 提供了两种重启方式:

  • 直接重启进程,即重新启动进程的服务器。
  • 只重启进程里面的代码,不重新启动服务器。

如果只是单纯的想重启进程里面的代码,可以通过以下命令达到效果:

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

如果需要重启进程服务器,可以通过以下命令达到效果:

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

删除进程

删除 PM2 管理的进程也很简单,只需要输入以下命令:

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

这里的 app.js 是你要删除的进程的入口文件。

查看进程信息

查看 PM2 管理的进程信息非常简单,只需要输入以下命令:

--- ----

查看进程日志

PM2 会把日志保存到一个文件里,如果需要查看进程日志,可以使用以下命令:

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

PM2 的高级功能

管理多个进程

通常情况下,我们需要同时运行多个 Node.js 进程,因此需要用到 PM2 的批量启动进程的功能。使用 PM2 批量启动进程的方法如下:

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

这里的 ecosystem.config.js 是一个 PM2 配置文件,可以在里面配置多个进程。一个示例的配置文件如下:

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

配置文件中有几个重要的属性需要讲解一下:

  • name 属性用来指定进程的名称,例如上面的例子中,我们指定了进程名为 app
  • script 属性用来指定进程的入口文件。
  • instances 属性用来指定启动的进程的数量,例如上面的例子中,我们定义了启动 2 个进程。
  • exec_mode 属性用来指定进程的运行模式,一般情况下用 cluster 模式即可。
  • watch 属性用来指定文件是否需要监视文件变化并自动重启,一般情况下用 true 即可。

环境变量的配置

PM2 支持通过环境变量的方式配置应用程序,这样不同环境下就可以使用不同的配置。例如,我们可以在生产环境下使用数据库的正式地址,而在开发环境下使用本地数据库地址。

配置环境变量的方法非常简单,只需要在 PM2 启动的时候设置一个环境变量即可。例如,我们可以通过以下命令启动一个名为 app 的进程,并在进程中设置了一个 NODE_ENV 的环境变量:

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

这里我们设置了 NODE_ENV=production,表示我们正在生产环境中启动进程。

日志的管理

PM2 支持自动保存进程的日志,并且可以通过 PM2 的命令来查看进程日志。日志文件默认保存在 ~/.pm2/logs 目录下。日志的格式可以配置。

以下是一些常用的日志相关命令:

  • 查看所有日志: pm2 logs
  • 查看特定进程的日志: pm2 logs app
  • 清除所有日志: pm2 flush
  • 重新加载日志: pm2 reloadLogs

集群模式的使用

cluster 模式下,PM2 会自动将你的 Node.js 代码分发给多个进程运行。这意味着,如果 Node.js 的某个进程崩溃了,其他进程依然可以正常工作。为了让 Node.js 所有的进程共享端口,PM2 内置了一个负载均衡器。根据 PM2 的测试结果,使用 Cluster 模式可以显著提高 Node.js 应用程序的性能。

启动一个进程使用 Cluster 模式的命令如下:

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

这里我们使用了 -i 2 参数,表示启动 2 个进程。

使用 PM2 Plus 进行监控和管理

PM2 Plus 是 PM2 的一种付费服务,可以为你的 Node.js 应用程序提供实时监控、自动扩容、历史数据存储等功能。

使用 PM2 Plus 非常简单,只需要先创建一个 PM2 Plus 账户,然后在 PM2 中执行以下命令即可:

--- ----

执行完后,你的应用程序就可以使用 PM2 Plus 的功能了。

结论

PM2 是一个非常实用的 Node.js 进程管理工具,它支持多功能的进程管理和监控,帮助我们轻松地管理多个 Node.js 进程,并提高了应用程序的性能和可靠性。无论是开发环境还是生产环境,都能为我们提供非常好的支持。无论你是初学者还是经验丰富的开发者,都应该认真学习和掌握 PM2 的使用。

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