用途:统一用 PM2 管理所有会产生输出或具有生命周期的应用进程,禁止直接以 node、bun、python 等方式启动。
主要能力:安装与验证 PM2;启动前用 pm2 jlist 检查是否已有同名进程,避免重复启动;支持 CLI 与 ecosystem.config.cjs 两种启动方式;标准配置要求 watch: true、autorestart: false,并设置忽略目录与日志路径;提供日志查看、生命周期管理(list、info、stop、restart、delete)及开机持久化。
必要用法:首次安装 npm install -g pm2,用 pm2 --version 与 pm2 ping 验证。启动前必须 pm2 jlist:online 用 pm2 logs <name> 观察,stopped 用 pm2 restart <name>,不在列表再启动。快速启动示例:pm2 start app.js --name myapp --watch --no-autorestart;推荐 pm2 start ecosystem.config.cjs。日志可用 pm2 logs <name>、--lines、--err、--out、--nostream、--json,pm2 flush 清空。完成后用 pm2 delete <name> 清理。
适用场景:需要长期运行、可观测、可重启的本地或服务器应用进程管理。
限制与注意:watch 生效时 pm2 stop 仍会在文件变更后重启,需 pm2 delete 才能彻底停止;WSL 挂载 /mnt/c、网络/NFS/Docker 卷需 usePolling: true;Linux inotify 耗尽需调整 max_user_watches;Windows 下 PM2 无法直接启动 .cmd 包装器,需用 interpreter: cmd、interpreter_args: /c 或指向真实 .js 入口;代码中 spawn 子进程须加 windowsHide: true;Windows 11+ 的 wmic 报错可通过 npm install -g pm2@latest 修复。重启持久化:Linux 用 pm2 startup && pm2 save,Windows 用 pm2-installer,pm2 save 与 pm2 resurrect 用于快照与恢复。