PM2 是一个流行的 JavaScript 运行时环境 Node.js 的进程管理工具。它可以帮助您管理和保持 Node.js 应用程序无停机地运行。PM2 提供了强大的功能集,包括但不限于负载均衡、日志管理、进程监控以及自动重启等。

PM2 的主要特点

  • 自动重启:如果您的 Node.js 应用崩溃,PM2 可以自动重启它。
  • 负载均衡:PM2 能够在一个机器上跨多个 CPU 核心负载平衡应用。
  • 集群模式:利用 Node.js 的 cluster 模块来优化性能。
  • 日志管理:提供详细的日志管理功能,可以查看、合并和清理日志。
  • 生态系统配置:支持定义应用的启动命令、环境变量和其他设置。
  • Web 界面:有一个可选的 Web UI 来监控应用状态和管理应用。
  • 持续集成/部署:支持与 CI/CD 工具集成,如 Jenkins、Travis CI 等。

安装 PM2

安装 PM2 很简单,只需使用 npm(Node.js 包管理器)全局安装即可:

npm install pm2 -g

基本用法

启动应用

您可以使用 PM2 来启动您的 Node.js 应用程序:

pm2 start app.js

这里的 app.js 是您的 Node.js 应用入口文件。

查看应用状态

要查看正在运行的应用的状态,可以使用:

pm2 list

停止应用

要停止一个应用,您可以使用:

pm2 stop app.js

重启应用

要重启一个应用,您可以使用:

pm2 restart app.js

日志管理

PM2 自动将应用的日志输出到文件中,您可以使用以下命令查看日志:

pm2 logs

配置文件

PM2 允许您为每个应用创建一个 ecosystem.config.js 文件来配置应用的启动方式、环境变量等。这是一个简单的配置文件示例:

module.exports = {
  apps : [{
    name: 'my-app',
    script: './app.js',
    instances: 1,
    autorestart: true,
    watch: false,
    max_memory_restart: '1G',
    env: {
      NODE_ENV: 'development'
    },
    env_production: {
      NODE_ENV: 'production'
    }
  }]
};

您可以使用 pm2 start ecosystem.config.js --env production 来根据不同的环境启动应用。

PM2 是一个非常强大的工具,能够显著提升 Node.js 应用的稳定性和管理效率。如果您计划在生产环境中运行 Node.js 应用,强烈建议使用 PM2 或类似的进程管理工具。