全栈开发

pm2 命令大全

一、启动类(最常用)

▶️ 启动一个 Node 应用

pm2 start app.js

▶️ 启动 npm 脚本(Next.js / Nest / Vite SSR 常用)

pm2 start npm --name nextjs-app -- start

▶️ 启动并指定端口

PORT=3000 pm2 start npm --name nextjs-app -- start

▶️ 启动并指定环境

pm2 start app.js --env production

二、查看 & 管理进程

📋 查看所有进程

pm2 list
# 或
pm2 status

📊 实时监控(CPU / 内存)

pm2 monit

三、停止 / 重启 / 删除

⏹ 停止

pm2 stop nextjs-app
pm2 stop 0           # 按 id

🔄 重启

pm2 restart nextjs-app
pm2 restart all

❌ 删除(彻底移除)

pm2 delete nextjs-app
pm2 delete all

四、日志(非常重要)

📄 查看日志(实时)

pm2 logs
pm2 logs nextjs-app

📄 只看 error / out

pm2 logs nextjs-app --err
pm2 logs nextjs-app --out

📁 日志文件路径

~/.pm2/logs/

五、更新代码后的正确姿势(生产必会)

🧠 推荐流程

git pull
npm install
npm run build
pm2 restart nextjs-app

六、开机自启(生产必做)

1️⃣ 生成启动脚本

pm2 startup

执行它提示你的那条 sudo 命令

2️⃣ 保存当前进程状态

pm2 save

七、集群模式(多核 CPU)

▶️ 按 CPU 核心数启动

pm2 start app.js -i max

▶️ 指定实例数

pm2 start app.js -i 4

👉 Next.js SSR 通常 1~2 个即可

八、配置文件(进阶但推荐)

ecosystem.config.js

module.exports = {
  apps: [
    {
      name: "nextjs-app",
      script: "npm",
      args: "start",
      env: {
        NODE_ENV: "production",
        PORT: 3000
      }
    }
  ]
}

启动:

pm2 start ecosystem.config.js

九、环境变量管理

查看环境变量

pm2 env 0

更新环境变量并重启

pm2 restart nextjs-app --update-env

十、排错 / 常见问题

❓ 应用没启动?

pm2 logs nextjs-app

❓ 端口被占用?

lsof -i :3000

❓ PM2 自己重启?

pm2 describe nextjs-app

十一、你这种 Next.js 项目最常用的 5 条

你以后基本只会反复用这几条:

pm2 start npm --name nextjs-app -- start
pm2 restart nextjs-app
pm2 logs nextjs-app
pm2 status
pm2 save

十二、一句话总结

PM2 = Node 服务的“守护进程 + 管理器”
不让你裸跑、不怕崩、能看日志、能重启、能自启。