nodejs进程管理pm2介绍
PM2(Process Manager 2)是 Node.js 生态中最受欢迎的生产环境进程管理器。它能帮你维持 Node.js 应用 24/7 不间断在线,并提供零停机重启、负载均衡、性能监控和日志管理等核心功能。
1.为什么选择 PM2?
在生产环境中直接运行 node app.js 存在明显的缺陷:程序报错就会崩溃退出、无法利用多核 CPU、缺少方便的日志管理等。PM2 正是为解决这些问题而生的:
- 保持持续运行:应用崩溃后会自动重启。
- 负载均衡(Cluster 模式):利用多核 CPU,提高应用并发处理能力。
- 零停机重载(Reload):更新代码或重启应用时无需中断服务。
- 资源监控与限制:可限制最大内存占用,超限自动重启。
- 开机自启:配置服务器重启后自动恢复服务。
2.安装与快速上手
2.1全局安装
1 | npm install pm2 -g |
2.2启动应用
1 | # 启动应用并指定名称 |
3.常用命令速查
| 常用操作 | 命令 | 说明 |
|---|---|---|
| 启动/查看 | pm2 start app.js |
启动指定的 Node 程序 |
pm2 list 或 pm2 ls |
查看所有运行中的应用列表及状态 | |
pm2 monit |
打开实时终端监控界面(CPU、内存等) | |
| 进程控制 | pm2 restart <id/name> |
重启应用(会打断当前请求) |
pm2 reload <id/name> |
零停机热重载应用(推荐生产环境使用) | |
pm2 stop <id/name> |
停止指定应用 | |
pm2 delete <id/name> |
停止并从列表中删除应用 | |
| 日志管理 | pm2 logs |
查看所有应用的合并实时日志 |
pm2 logs <id/name> |
查看特定应用的实时日志 | |
pm2 flush |
清空所有日志文件 |
4.进阶技巧
4.1使用配置文件(Ecosystem File)
对于复杂的生产项目,推荐使用配置文件(ecosystem.config.js)统一管理环境变量和启动选项。
生成配置文件:
1 | pm2 init |
配置文件示例(ecosystem.config.js):
1 | module.exports = { |
使用配置文件启动:
1 | pm2 start ecosystem.config.js --env production |
4.2服务器开机自启
确保服务器(如 Ubuntu/CentOS)重启后,PM2 能自动恢复之前运行的服务:
1 | # 1. 保存当前运行的应用列表 |