文章
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 服务的“守护进程 + 管理器”
不让你裸跑、不怕崩、能看日志、能重启、能自启。