PM2 部署 Node.js 服务:开机启动、日志、重启策略和常见误区

很多 Node.js 项目上线时第一反应就是“先 pm2 start 再说”。这当然能跑,但生产环境真正需要考虑的是:服务崩了怎么自动拉起、日志怎么切分、开机后会不会自动恢复、环境变量怎么管理、升级时如何减少中断。

PM2 的价值不是启动,而是守护

PM2 最重要的能力是让服务在异常退出时自动恢复,并提供统一的进程管理入口。仅仅把它当作“省得手敲 node server.js”的工具,其实没有发挥它的核心价值。

日志和重启策略不该等出事后再补

很多线上问题最后都要回到日志。日志如果全部挤在一个大文件里,既不利于定位,也不利于清理。比较实用的方式是搭配 pm2-logrotate 或自己的切分方案,让日志不会无限增长。

至于重启策略,真正要关注的不是“能不能重启”,而是“为什么会频繁重启”。如果应用总在 10 秒内崩掉,PM2 只是帮你把故障不断重复。

上线前至少验证三次

验证开机启动、验证异常退出自动拉起、验证日志是否按预期输出。只要这三件事没亲自测试过,就不要默认它们已经可用。很多线上事故都源于“以为配过了”。

作者说明

长期维护小型网站和服务器,关注真正能解决问题的技术教程、部署经验与排障方法。