PM2入门
PM2是什么?
PM2全称是Process Manager 2,是个带负载均衡功能的Node.js应用进程管理器。虽然它是为Node.js设计的,但其实管理其他语言的应用也没有问题,比如Python、Shell脚本这些都可以。
安装PM2
npm install -g pm2
需要服务器上有Node.js环境,没有的话需要先安装个Node.js。
安装后可以查看以下版本
pm2 -v
建议隔段时间更新一下版本,新版本会修复一些Bug,或者带来一些新的功能。
npm install -g pm2@latest
核心命令格式
PM2 并不直接“管理”npm 包本身,而是通 调用 npm 脚本 来启动和守护 Node.js 应用进程。核心做法是将npm run <script> 作为 PM2 的启动命令。
启动默认 start 脚
pm2 start npm --name "app-name" -- start
使用pm2 start npm -- run <script-name> 语法,其中 -- 用于分隔 PM2 参数和 npm 参数
启动特定脚本(如 dev/build)
pm2 start npm --name "app-name" -- run dev
带参数启动
pm2 start npm --name "app-name" -- run start -- --port 3000
(双 -- 后为传递给 npm 的参数)
关键注意事项
工作目录
必须在项目根目录(包含 package.json 的目录)执行上述命令,否则 npm 无法找到脚本。
生产环境推荐
线上部署建议直接指定入口文件(如 pm2 start dist/server.js )或使用 ecosystem.config.js 配置文件,避免依赖 npm 启动带来的额外开销和路径解析问题。
集群模式限制
若需多进程负载均衡,建议直接对 Node 脚本使用 -i max 参数,而非通过 npm 间接启动,以确保集群模式正确生效。
常用管理操作
查看状态
pm2 list
pm2 ls
pm2 status
查看进程详情
pm2 show app-name
pm2 show 0 // 0为进程ID
查看监控面板
pm2 monit
停止/重启
pm2 stop app-name
pm2 stop all
pm2 restart app-name
pm2 restart all
删除
pm2 delete app-name
pm2 delete all
查看日志
所有进程日志
pm2 logs
查看指定进程的日志
pm2 logs app-name
清空日志
pm2 flush
这个命令会清空所有日志文件。
开机自启
pm2 startup + pm2 save
简言之,PM2 通过封装 npm run 命令实现进程守护,但生产环境更推荐直接管理 Node 进程以提升稳定性。
启动Python脚本
直接启动
pm2 start test.py --interpreter python3
需要指定解释器,不然pm2会用默认的python。
指定应用名
pm2 start test.py --interpreter python3 --name my-python-app
正文到此结束
- 本文标签: node pm2 进程管理
- 本文链接: https://www.iquanzi.top/article/17
- 版权声明: 本文由张华永原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权