核心用法
PM2 是 Node.js 生态中最广泛使用的生产级进程管理器,通过简单的 CLI 命令实现应用部署、监控和运维自动化。
启动与管理:支持直接启动 JS 文件、npm 脚本或自定义命令,可指定名称、端口和环境变量。pm2 start 配合 --name 参数创建具名进程,便于后续管理。
进程监控:pm2 list 查看所有进程状态,pm2 logs 实时或回溯查看日志,pm2 monit 提供终端仪表盘监控 CPU/内存。
高可用特性:内置零停机重载(reload)、集群模式(-i max 利用多核)、内存限制自动重启(--max-memory-restart)等生产必需功能。
开机自启:pm2 save 保存进程列表 + pm2 startup 生成系统启动脚本,确保服务器重启后服务自动恢复。
显著优点
- 零配置开箱即用:无需编写配置文件即可快速启动
- 生态文件支持:
ecosystem.config.js实现版本控制友好的声明式配置 - 日志管理:自动聚合日志,支持按应用/行数过滤
- 跨平台:支持 Linux、macOS、Windows 多种启动系统
潜在局限
- 单点依赖:PM2 本身若崩溃,托管进程可能失控(虽会自动重启)
- 资源占用:守护进程额外消耗内存(约 50-100MB)
- 学习曲线:集群模式、环境变量传递等高级用法需理解 Node 事件循环
适合人群
Node.js 后端开发者、DevOps 工程师、需要部署 Next.js/Nuxt 等 SSR 应用的团队,以及任何需要 7×24 小时稳定运行的 Node 服务场景。
常规风险
- 权限问题:
pm2 startup需要 sudo 执行,不当操作可能影响系统服务 - 环境泄漏:命令行传入的 env 变量可能出现在进程列表中
- 日志膨胀:默认无自动清理,长期运行需配置 logrotate