PM2 管理 Node 应用指南
1. 什么是 PM2
PM2 是一个 Node.js 应用进程管理器,它可以让你:
- 守护进程:应用崩溃自动重启
- 负载均衡:支持 Cluster 模式,多核充分利用
- 日志管理:集中管理应用日志
- 开机自启:系统重启后自动启动应用
- 监控:实时查看 CPU/内存使用情况
2. 安装 PM2
bash
# 全局安装 PM2
npm install pm2 -g
# 查看版本
pm2 -v3. 启动 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-app4. 查看进程状态
bash
# 查看所有进程状态
pm2 list
# 查看详细信息
pm2 show my-app5. 管理进程
bash
# 停止应用
pm2 stop my-app
# 重启应用
pm2 restart my-app
# 删除应用
pm2 delete my-app6. 日志管理
bash
# 查看实时日志
pm2 logs my-app
# 查看错误日志
pm2 logs --err
# 查看输出日志
pm2 logs --out
# 日志文件路径
pm2 info my-app7. 开机自启
bash
# 生成自启动脚本
pm2 startup
# 保存当前进程列表
pm2 save8. 高级功能
- 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 production9. 总结
PM2 的核心价值:
- 稳定运行:崩溃自动重启
- 日志集中管理
- 高可用:Cluster 模式负载均衡
- 易于运维:开机自启和监控