Node.js 进程管理神器 PM2 完全指南

PM2 是 Node.js 应用的进程管理器,能帮助你实现应用的启动、停止、重启、监控等功能,同时支持进程守护(应用崩溃后自动重启)。以下是 PM2 的常用操作指南:

一、安装 PM2

全局安装 PM2(需要 Node.js 环境):

npm install pm2 -g

二、基本使用命令

1. 启动应用

最基础的启动命令(以 Node.js 应用为例):

pm2 start app.js  # 启动 app.js

常用参数

  • --name <name>:给进程命名(方便后续管理)
    pm2 start app.js --name "my-api"
    
  • --watch:监听文件变化,自动重启应用(开发环境常用)
    pm2 start app.js --watch
    
  • -i <num>:启动多个实例(实现负载均衡,num=0 表示根据 CPU 核心数自动分配)
    pm2 start app.js -i 3  # 启动 3 个实例
    
  • --env <env>:指定环境变量(结合配置文件使用)
    pm2 start app.js --env production
    
2. 查看进程状态
pm2 list  # 查看所有进程状态(简洁版)
pm2 status  # 同上,显示更详细信息
pm2 monit  # 进入交互式监控界面(实时查看 CPU/内存占用)
3. 停止/重启/删除进程
# 停止进程(通过名称或 ID)
pm2 stop my-api  # 通过名称
pm2 stop 0       # 通过 ID(0 是进程列表中的 ID)

# 重启进程(修改代码后常用)
pm2 restart my-api
pm2 restart all  # 重启所有进程

# 删除进程(从 PM2 列表中移除)
pm2 delete my-api
pm2 delete all   # 删除所有进程
4. 日志管理

PM2 会自动记录应用输出的日志:

pm2 logs  # 查看所有进程的日志
pm2 logs my-api  # 查看指定进程的日志
pm2 logs --lines 100  # 查看最近 100 行日志
pm2 flush  # 清空所有日志

三、配置文件(推荐)

对于复杂应用,建议用配置文件管理 PM2 启动参数,支持 JSONYAMLJS 格式。

示例(ecosystem.config.js)

module.exports = {
  apps: [
    {
      name: "my-nuxt-app",  // 进程名
      script: ".output/server/index.mjs",  // 入口文件(Nuxt4 构建后的入口)
      instances: "max",  // 自动根据 CPU 核心数启动实例
      exec_mode: "cluster",  // 集群模式(负载均衡)
      watch: false,  // 生产环境关闭 watch
      env: {
        NODE_ENV: "development"  // 开发环境变量
      },
      env_production: {
        NODE_ENV: "production"  // 生产环境变量
      }
    }
  ]
};

通过配置文件启动:

pm2 start ecosystem.config.js  # 默认使用 development 环境
pm2 start ecosystem.config.js --env production  # 使用 production 环境

四、开机自启动

设置 PM2 管理的应用在服务器重启后自动启动:

# 生成开机自启脚本
pm2 startup

# 按照命令提示执行生成的脚本(通常是类似 sudo env ... 的命令)

# 保存当前进程列表,确保重启后能恢复
pm2 save

取消自启动:

pm2 unstartup

五、常用进阶命令

  • pm2 reload <name>:零停机重启(适用于集群模式,逐个重启实例,避免服务中断)
  • pm2 reset <name>:重置进程的统计信息(CPU/内存等)
  • pm2 update:更新 PM2 版本(会自动重启所有进程)
  • pm2 info <name>:查看进程的详细信息(如启动时间、环境变量等)

总结

PM2 核心功能围绕「进程管理」和「高可用」,常用命令可总结为:

pm2 start     # 启动
pm2 list      # 查看
pm2 restart   # 重启
pm2 stop      # 停止
pm2 delete    # 删除
pm2 logs      # 日志
pm2 monit     # 监控

根据实际需求(开发/生产环境、单实例/集群模式)调整参数即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值