微信登录

进程管理 - PM2 工具 - 使用 PM2 管理进程

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

引言

在 Node.js 开发中,我们常常需要运行各种应用程序。但是,当应用程序在生产环境中运行时,仅仅启动它是远远不够的。我们需要考虑到应用程序的稳定性、高可用性以及监控等问题。这时候,PM2 就成为了一个非常实用的工具。PM2 是一个带有负载均衡功能的 Node.js 应用的进程管理器,它可以帮助我们轻松地管理和守护 Node.js 应用程序。

安装 PM2

在使用 PM2 之前,我们需要先安装它。可以使用 npm 或者 yarn 来进行安装,以下是使用 npm 安装的命令:

  1. npm install -g pm2

安装完成后,可以使用以下命令来验证 PM2 是否安装成功:

  1. pm2 --version

PM2 基本使用

启动应用程序

假设我们有一个简单的 Node.js 应用程序 app.js,代码如下:

  1. const http = require('http');
  2. const server = http.createServer((req, res) => {
  3. res.statusCode = 200;
  4. res.setHeader('Content-Type', 'text/plain');
  5. res.end('Hello, World!\n');
  6. });
  7. server.listen(3000, () => {
  8. console.log('Server running on port 3000');
  9. });

使用 PM2 启动这个应用程序的命令如下:

  1. pm2 start app.js

PM2 会自动管理这个应用程序的进程,即使应用程序崩溃,PM2 也会自动重启它。

查看进程列表

使用以下命令可以查看当前由 PM2 管理的所有进程列表:

  1. pm2 list

这个命令会输出一个表格,包含进程的 ID、名称、状态、CPU 使用率、内存使用率等信息。

停止进程

如果需要停止某个进程,可以使用以下命令:

  1. pm2 stop <process_id_or_name>

其中 <process_id_or_name> 可以是进程的 ID 或者名称。例如,如果要停止上面启动的 app.js 进程,可以使用:

  1. pm2 stop app

重启进程

如果需要重启某个进程,可以使用以下命令:

  1. pm2 restart <process_id_or_name>

同样,<process_id_or_name> 可以是进程的 ID 或者名称。

删除进程

如果不再需要某个进程,可以使用以下命令将其从 PM2 的管理列表中删除:

  1. pm2 delete <process_id_or_name>

PM2 高级功能

日志管理

PM2 会自动记录应用程序的日志,使用以下命令可以查看应用程序的日志:

  1. pm2 logs <process_id_or_name>

如果不指定 <process_id_or_name>,则会查看所有进程的日志。

监控

PM2 提供了一个实时监控界面,可以查看应用程序的 CPU 使用率、内存使用率等信息。使用以下命令可以进入监控界面:

  1. pm2 monit

负载均衡

PM2 可以通过 --instances 参数来实现负载均衡。例如,启动 4 个实例来处理请求:

  1. pm2 start app.js --instances 4

这样,PM2 会自动将请求分发到这 4 个实例中,提高应用程序的性能和可用性。

环境变量

在启动应用程序时,可以通过 --env 参数来设置环境变量。例如:

  1. pm2 start app.js --env production

在应用程序中,可以通过 process.env.NODE_ENV 来获取这个环境变量的值。

PM2 配置文件

为了更方便地管理应用程序,PM2 支持使用配置文件。创建一个名为 ecosystem.config.js 的文件,内容如下:

  1. module.exports = {
  2. apps : [{
  3. name: 'my-app',
  4. script: 'app.js',
  5. instances: 4,
  6. autorestart: true,
  7. watch: false,
  8. max_memory_restart: '1G',
  9. env: {
  10. NODE_ENV: 'development'
  11. },
  12. env_production: {
  13. NODE_ENV: 'production'
  14. }
  15. }]
  16. };

使用配置文件启动应用程序的命令如下:

  1. pm2 start ecosystem.config.js

总结

功能 命令 说明
启动应用程序 pm2 start <script> 启动一个 Node.js 应用程序
查看进程列表 pm2 list 查看当前由 PM2 管理的所有进程列表
停止进程 pm2 stop <process_id_or_name> 停止指定的进程
重启进程 pm2 restart <process_id_or_name> 重启指定的进程
删除进程 pm2 delete <process_id_or_name> 从 PM2 的管理列表中删除指定的进程
查看日志 pm2 logs <process_id_or_name> 查看指定进程的日志
监控 pm2 monit 进入实时监控界面
负载均衡 pm2 start <script> --instances <number> 启动多个实例来实现负载均衡
使用配置文件启动 pm2 start <config_file> 使用配置文件启动应用程序

通过使用 PM2,我们可以更加方便地管理和守护 Node.js 应用程序,提高应用程序的稳定性和可用性。希望这篇文章能帮助你更好地使用 PM2 进行进程管理。