Node.js 词条目录
前端Wiki/词条/PM2 进程守护

PM2 进程守护

定义Node 进程管理器:崩溃自动重启、负载均衡集群、日志与零停机重载

Node 单线程,一个未捕获异常整个进程就死了。PM2 解决的就是生产环境的「保活」:pm2 start app.js 后进程崩溃会自动拉起;cluster 模式一键起多个进程(按 CPU 核数)用同一端口做负载均衡;pm2 reload 实现零停机重启(一个一个替换工作进程)。

日志能力是另一大 praktische 功能:应用的 stdout/stderr 自动落到 ~/.pm2/logs/,按应用名分文件。配合 pm2 startup 生成开机自启脚本、pm2 save 保存进程列表。注意:PM2 cluster 模式下多个进程不共享内存,session/缓存要放 Redis 而不是进程内 Map。

JavaScript
// 启动并常驻(崩溃自动重启)
// pm2 start app.js --name api

// 以集群模式起 4 个进程共享一个端口
// pm2 start app.js -i 4

// 零停机重载(逐个换工作进程,全程不拒绝请求)
// pm2 reload api

// 常用命令
// pm2 list              查看进程
// pm2 logs api          实时日志
// pm2 monit             CPU/内存监控
// pm2 startup           生成开机自启
// pm2 save              保存当前进程列表

// ecosystem 配置文件(ecosystem.config.js)
module.exports = {
  apps: [{
    name: 'api',
    script: 'app.js',
    instances: 'max',        // 按 CPU 核数起集群
    exec_mode: 'cluster',
    max_memory_restart: '300M',  // 内存超限自动重启
    env_production: { NODE_ENV: 'production' },
  }],
};
⚠ 常见误区
🔗 相关词条Express 中间件环境变量与配置CI/CD 流水线
← 返回来源章节PM2 部署与守护