PM2 进程管理速查表 - Node.js 进程管理命令大全

Node 服务若只是前台跑或直接 node app.js,进程一挂、内存一涨就全靠人肉盯。PM2 把守护、崩溃重启、集群、日志与开机自启串成一个闭环。本表按启动运行、日志、监控、集群、开机自启、ecosystem.config.js 分组,把部署时最常用的命令与关键参数放在一起,并标注 reload 与 restart 的差别、以及 save + startup 搭配实现重启自愈这类运维要点。读完能独立为 Node 服务配好守护、扩容与自愈。

编程语言·共 38 条命令·最后更新 2026-07-21
pm2node进程管理集群

典型使用场景

上线 Node 服务前,用 -i max 集群模式按 CPU 核数多开进程,并把参数收敛进 ecosystem.config.js 统一管理;服务崩溃或内存泄漏时,先 pm2 monit 看趋势,再配置 max_memory_restart 让超限进程自动重启兜底;需要滚动发布不中断在线用户时,用 reload 逐个重启实现零停机,尤其适合有状态或长连接服务;服务器重启后要自动拉起全部服务,组合 pm2 save 与 pm2 startup 完成开机自启;日常排查先 pm2 list 定位非 online 的进程,再 pm2 logs 看报错。

启动与停止 Start & Stop 12

pm2 start app.js
启动应用
pm2 start app.js --name "api"
启动并命名进程
pm2 start app.js -i max
集群模式,按 CPU 核数启动
pm2 start app.js -i 4
集群模式,指定 4 个进程
pm2 start ecosystem.config.js
用配置文件启动(推荐)
pm2 stop all
停止所有进程
pm2 stop api
停止指定进程
pm2 restart api
重启进程(重载代码)
pm2 reload api
零停机重载(集群模式推荐)
pm2 delete api
从进程列表删除
pm2 start app.js --watch
监听文件变化自动重启
pm2 kill
杀掉所有进程并停止 PM2 守护

日志管理 Logs 5

pm2 logs
实时查看所有日志
pm2 logs api --lines 100
查看指定进程最近 100 行,日志刷屏时收窄到最近 N 行便于定位
pm2 logs api --err
只看错误日志,正文之外的堆栈跟随 stderr 一并输出
pm2 flush
清空所有日志文件,配合 pm2 start --log 指定路径后释放磁盘
pm2 install pm2-logrotate
安装日志轮转模块,防止日志无限增长导致磁盘写满

监控与状态 Monitor 6

pm2 list
列出所有进程
pm2 show api
查看进程详情(启动命令、重启次数、内存、uptime、日志路径、启动环境)
pm2 monit
终端监控面板(CPU/内存),现场观察某进程是否在缓慢泄漏
pm2 status
查看进程状态,配合 --watch 时确认是否因文件变化被反复重启
pm2 describe api
查看进程详细描述信息,常用于核对启动时的配置参数是否生效
pm2 jlist
JSON 格式输出进程列表(适合脚本)

开机自启 Startup 4

pm2 startup
生成开机自启脚本,按提示执行输出的命令
pm2 save
保存当前进程列表,开机自启时恢复
pm2 resurrect
手动恢复保存的进程列表
pm2 unstartup
移除开机自启

集群与扩展 Cluster & Scale 5

pm2 scale api +2
扩容 2 个进程
pm2 scale api 8
指定进程总数为 8
pm2 reset api
重置进程重启计数
pm2 serve ./dist 8080
静态文件目录服务
pm2 deploy ecosystem.config.js production
通过配置文件部署到远程

生态配置 ecosystem.config.js 6

module.exports = { apps: [{ name: "api", script: "app.js", instances: "max", exec_mode: "cluster" }] }
基础集群配置
env: { NODE_ENV: "production", PORT: 3000 }
环境变量配置
max_memory_restart: "1G"
内存超 1G 自动重启
error_file: "./logs/err.log", out_file: "./logs/out.log"
自定义日志路径
watch: true, ignore_watch: ["node_modules", "logs"]
文件变化自动重启
pm2 start ecosystem.config.js --env production
指定环境启动(读取 env_production)

命令示例

按 CPU 核数集群启动并确认运行

pm2 start app.js -i max pm2 list

-i max 按 CPU 核数启动;pm2 list 看 status 是否 online、instances 是否等于核数,restart:0 表示未发生过崩溃重启。

输出

│ api   │ online │ 8 │ 4.2MB │ restart:0 │

零停机滚动重载配置变更

pm2 reload api

集群模式下 reload 会逐个重启进程实现零停机;若应用为 fork(单进程)模式,reload 与 restart 效果相同、无法零停机。

配置日志轮转防止磁盘写满

pm2 install pm2-logrotate pm2 set pm2-logrotate:max_size 10M

日志无限增长会撑爆磁盘;安装后调整 max_size(默认 10M)与默认每天轮转,旧日志按保留策略清除。

输出

Modifying value of setting [pm2-logrotate:max_size] with value 10M

常见坑与注意事项

  • pm2 kill 会连守护进程一起退出并清空进程,生产环境不要用 kill 来"重启 PM2",正确做法是 restart 具体应用或重启服务器。
  • pm2 startup 只是生成一段要执行的命令,必须按提示以 sudo/root 实际运行那行输出一次,开机自启才会真正生效,很多人漏了这一步。
  • reload 的零停机只在 cluster 模式下成立;fork 模式下 reload 等价于 restart,会中断连接。
  • --watch 会把 node_modules、日志等目录的变化也当成重启触发点,务必配 ignore_watch 排除,否则会造成无谓震荡重启。
  • pm2 monit 是实时监听面板,退出即停止采样;要持久观察内存/重启趋势,应配合监控告警或采集工具,而不是人肉盯终端。

提示

  • reload 比 restart 更平滑,集群模式下逐个重启实现零停机,单进程模式 reload 等同于 restart。
  • pm2 save + pm2 startup 组合实现开机自启,服务器重启后自动恢复所有进程。
  • 内存泄漏排查:pm2 monit 观察内存趋势,配置 max_memory_restart 自动重启兜底。

常见问题

pm2 的 reload 和 restart 有什么区别?

restart 是杀死进程再拉起,会短暂断服务;reload 在 cluster 模式下逐个重载 worker 实现零停机更新,代码变了不断连接。想平滑发布用 pm2 reload app;若服务不是多实例或只需清状态,用 restart 即可。

pm2 几次重启后提示端口被占用怎么办?

通常是旧进程没退干净或端口被系统、其它进程占用。先 pm2 delete app 彻底删掉旧的,再查端口占用(Linux 用 ss -tlnp)并杀掉对应进程,确认 PORT 无冲突后重新 pm2 start。也可能是崩溃被反复拉起,先看 pm2 logs 排查真正异常。

pm2 需要开机自启怎么配置?

先用 pm2 start 启动要自启的应用并 pm2 save 保存列表,然后执行 pm2 startup 并按它输出运行对应的 init 命令(会生成 systemd 或 sysv 启动脚本)。这样开机时 PM2 会自动加载已 save 的应用,实现重启自愈。

pm2 挂掉后会自动重启吗,怎么限制内存用量?

普通崩溃默认会自动重启一次;想长时间守护可设 max_restarts。为避免内存泄漏撑爆机器,在 pm2 start app --max-memory-restart 1G 或 ecosystem.config.js 的 max_memory_restart 设阈值,超过即自动重启。长驻压力大时可配合日志轮转一起使用。

pm2 save 有什么作用,不加会怎样?

pm2 save 把当前运行的进程列表写入 dump 文件,配合 pm2 startup 才能实现开机自启,也用于 pm2 resurrect 手动恢复。不加 save,机器重启或换新机后 PM2 会丢失这些进程的管理状态,需要手动重新 start 一遍。

官方参考来源

下方为命令对应的官方权威文档,供你核对最新用法与深入查阅。

由 巧匠 维护

公开更新于 2026年7月21日,内容持续校对官方文档。

联系我们

命令或描述有误?提交反馈、商务合作或产品建议都可发送邮件给我们。

联系我们