PM2 速查表
Node.js 进程守护、日志查看与分割轮转、集群扩缩容与开机自启常用命令
基础
版本、守护进程状态、列表与监控
| 命令 | 说明 |
|---|---|
pm2 -v | 查看 PM2 版本 |
pm2 ping | 检查 PM2 守护进程状态 |
pm2 list | 查看进程列表(简写:pm2 ls) |
pm2 monit | 打开实时监控面板(CPU/内存) |
进程管理
启动、重启、重载、停止、删除、扩缩容
| 命令 | 说明 |
|---|---|
pm2 start app.js | 启动脚本 |
pm2 start app.js --name api | 启动并指定进程名 |
pm2 start npm --name web -- run start | 以 npm script 方式启动 |
pm2 restart api | 重启进程 |
pm2 reload api | 零停机重载(cluster 模式更常用) |
pm2 stop api | 停止进程 |
pm2 delete api | 删除进程(从 PM2 列表移除) |
pm2 scale api 4 | 扩缩容到指定实例数 |
日志与排查
日志查看、诊断信息、环境变量
| 命令 | 说明 |
|---|---|
pm2 logs | 查看全部进程日志 |
pm2 logs api | 查看指定进程日志 |
pm2 logs api --lines 200 | 查看最近 N 行日志 |
pm2 flush | 清空所有日志文件 |
pm2 show api | 查看进程详情(路径、环境变量、重启次数) |
pm2 describe api | 同 show,输出更偏诊断信息 |
pm2 env 0 | 查看指定 id 进程的环境变量 |
日志分割与轮转
生产环境常用 pm2-logrotate 按大小或定时切分;也可在 ecosystem 里把 stdout / stderr 拆到不同文件
| 命令 / 配置 | 说明 |
|---|---|
pm2 install pm2-logrotate | 安装官方日志轮转模块(按大小/定时切分、压缩、保留份数) |
pm2 module:list | 查看已安装模块(含 pm2-logrotate 运行状态) |
pm2 conf | 查看当前 PM2 与模块配置(含 logrotate 各项) |
pm2 set pm2-logrotate:max_size 10M | 单日志超过该大小时轮转切分为新文件 |
pm2 set pm2-logrotate:retain 30 | 每个应用最多保留的归档文件数量 |
pm2 set pm2-logrotate:compress true | 轮转后对旧日志 gzip 压缩 |
pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss | 归档文件名中的时间戳格式 |
pm2 set pm2-logrotate:rotateInterval 0 0 * * * | 按 cron 定时轮转(与 max_size 可配合使用) |
pm2 set pm2-logrotate:workerInterval 30 | 检查是否需轮询的间隔(秒) |
pm2 reload pm2-logrotate | 重载 pm2-logrotate 模块使配置生效 |
pm2 reloadLogs | 让各进程重新打开日志文件描述符(配合系统 logrotate copytruncate 等) |
pm2 uninstall pm2-logrotate | 卸载日志轮转模块 |
Ecosystem:按流拆文件
写在 ecosystem.config.js 的 apps[] 中
| 配置片段 | 说明 |
|---|---|
out_file: './logs/out.log', error_file: './logs/err.log' | 在 ecosystem 的 apps 项里分别指定标准输出、标准错误路径,从文件层面拆成两份日志 |
merge_logs: true | cluster 多实例时合并写到同一对 out/error 文件(便于集中查看) |
log_date_format: 'YYYY-MM-DD HH:mm:ss Z' | 每条日志行前带时间戳(与 logrotate 归档文件名不同) |
开机自启与状态恢复
startup/save/resurrect 常用组合
| 命令 | 说明 |
|---|---|
pm2 startup | 生成开机自启命令(按提示执行) |
pm2 save | 保存当前进程列表到 dump 文件 |
pm2 resurrect | 从 dump 文件恢复进程 |
pm2 unstartup | 移除开机自启配置 |
pm2 reset api | 重置指定进程重启计数 |
Ecosystem 与部署
配置文件驱动的多应用管理与远程部署
| 命令 | 说明 |
|---|---|
pm2 init simple | 生成基础 ecosystem 配置文件 |
pm2 start ecosystem.config.js | 按配置文件启动应用 |
pm2 restart ecosystem.config.js --env production | 按指定环境重启应用 |
pm2 deploy ecosystem.config.js production | 执行部署(需预先配置 deploy) |