文章 文章 posts

PM2 管理 Node 应用指南

1. 什么是 PM2

PM2 是一个 Node.js 应用进程管理器,它可以让你:

  • 守护进程:应用崩溃自动重启
  • 负载均衡:支持 Cluster 模式,多核充分利用
  • 日志管理:集中管理应用日志
  • 开机自启:系统重启后自动启动应用
  • 监控:实时查看 CPU/内存使用情况

2. 安装 PM2

bash
# 全局安装 PM2
npm install pm2 -g

# 查看版本
pm2 -v

`

3. 启动 Node 应用

假设你的应用入口是 app.js:

bash
# 启动应用
pm2 start app.js

# 给进程起个名字
pm2 start app.js --name my-app

常用选项:

  • --watch:监控文件变化,自动重启
  • -i max:开启 Cluster 模式,充分利用 CPU 核心数
bash
pm2 start app.js -i max --name my-app

4. 查看进程状态

bash
# 查看所有进程状态
pm2 list

# 查看详细信息
pm2 show my-app

5. 管理进程

bash
# 停止应用
pm2 stop my-app

# 重启应用
pm2 restart my-app

# 删除应用
pm2 delete my-app

6. 日志管理

bash
# 查看实时日志
pm2 logs my-app

# 查看错误日志
pm2 logs --err

# 查看输出日志
pm2 logs --out

# 日志文件路径
pm2 info my-app

7. 开机自启

bash
# 生成自启动脚本
pm2 startup

# 保存当前进程列表
pm2 save

8. 高级功能

  • Cluster 模式:
bash
pm2 start app.js -i 4 --name my-app
  • 环境变量管理:
bash
pm2 start app.js --name my-app --env production
  • 监控面板:
bash
pm2 monit
  • JSON 配置启动: 创建 ecosystem.config.js:
js
module.exports = {
  apps: [
    {
      name: "my-app",
      script: "./app.js",
      instances: "max",
      autorestart: true,
      watch: false,
      env: {
        NODE_ENV: "development"
      },
      env_production: {
        NODE_ENV: "production"
      }
    }
  ]
};

启动:

bash
pm2 start ecosystem.config.js --env production

9. 总结

PM2 的核心价值:

  • 稳定运行:崩溃自动重启
  • 日志集中管理
  • 高可用:Cluster 模式负载均衡
  • 易于运维:开机自启和监控