node pm2 完整介绍

2026-7-11 杜世伟 JavaScript

一、什么是 PM2

PM2 是一款基于 Node.js 开发的生产环境进程管理工具,专门用来托管 Node 后端项目(Express、Koa、Nest、Nuxt、Next 等)。
原生 Node node app.js 运行程序有致命缺点:
  • 终端一关程序直接退出
  • 程序崩溃不会自动重启
  • 无法多进程利用多核 CPU
  • 不方便查看日志、监控、开机自启
PM2 就是用来解决以上问题,是 Node 项目服务器部署最主流工具。

二、核心功能

  1. 进程守护(保活)
    程序异常崩溃、报错退出后,PM2 会自动重启进程,保证服务持续在线。
  2. 后台常驻运行
    脱离终端窗口,关闭 SSH 连接服务器后项目依旧运行。
  3. 集群多实例负载均衡
    自动根据 CPU 核心创建多进程,充分利用服务器多核性能,分摊请求压力。
  4. 日志集中管理
    统一收集标准输出、错误日志,支持实时查看、清空、按日期分割日志。
  5. 一键开机自启
    服务器重启后,自动拉起所有托管项目,无需手动启动。
  6. 进程监控
    查看每个进程 CPU、内存占用,内置可视化监控面板。
  7. 零停机热重载更新
    pm2 reload 重启服务不会中断现有用户连接,适合线上发布。

三、安装方式

全局安装(服务器必用)


npm install pm2 -g
# 或 yarn
yarn global add pm2


安装后任意目录可直接使用 pm2 命令。

四、两种启动方式

1. 直接启动单文件


# 启动入口文件并命名进程
pm2 start app.js --name api-server

# 执行package.json里的npm脚本
pm2 start npm --name web -- start
pm2 start npm --name dev -- run dev


2. 配置文件启动(推荐项目规范化)


根目录新建 ecosystem.config.js

module.exports = {
  apps: [
    {
      name: "backend",       // 进程名
      script: "./src/index.js", // 入口文件
      instances: "max",      // 最大CPU核心数多开
      exec_mode: "cluster",  // 集群模式
      env: {
        NODE_ENV: "production",
        PORT: 3000
      },
      out_file: "./logs/out.log",  // 普通日志
      error_file: "./logs/err.log" // 错误日志
    }
  ]
}
pm2 start ecosystem.config.js 

五、最常用核心命令

表格
命令 作用
pm2 list / pm2 ls 列出所有托管进程
pm2 restart 进程名 / ID 重启进程
pm2 reload 进程名 零停机重载(线上发布首选)
pm2 stop 进程名 暂停进程
pm2 delete 进程名 从列表删除进程
pm2 logs 实时打印日志
pm2 monit 图形化监控面板
pm2 save 保存当前进程列表
pm2 startup 设置开机自启
pm2 flush 清空所有日志

六、运行模式区别

  1. fork 模式(默认)
    单进程运行,适合不需要多并发的小项目,不做多核分摊。
  2. cluster 集群模式
    多进程,PM2 做负载分发请求,充分利用多核 CPU,线上生产环境标配

七、适用场景

✅ Node.js 后端接口服务
✅ Next/Nuxt 服务端渲染项目
✅ 定时脚本、爬虫、常驻任务脚本
✅ 小型前端静态服务托管

八、优缺点

优点

  • 轻量无额外依赖,上手极简
  • 开箱即用,不用复杂配置
  • 原生适配 npm 项目脚本
  • 生态成熟,几乎所有 Node 线上部署标配

局限

只针对 Node 程序,不能用来管理 Java、Python、Go 等其他语言后端。

九、常见配套搭配

服务器部署标准组合:
Nginx 反向代理 + PM2 托管Node项目 + 域名SSL证书

标签: js node pm2

Powered by emlog 沪ICP备2023034538号-1