一七八、Node.js PM2使用介绍

PM2 是一个强大的生产级 Node.js 进程管理器,提供了自动重启、负载均衡和进程监控等功能。适用于开发和生产环境,简化了 Node.js 应用程序的管理和维护。


PM2 安装

1. 使用 npm 安装 PM2
bash 复制代码
npm i -g pm2@latest
  • -g:全局安装。
  • @latest:安装最新版本。

PM2 使用

2. 启动应用程序
bash 复制代码
pm2 start app.js
  • 启动 app.js 并使用 PM2 管理。

应用程序声明文件

3. process.yml

使用 YAML 文件定义和管理多个应用程序。

bash 复制代码
apps:
  - script: app.js
    instances: 4
    exec_mode: cluster
  - script: worker.js
    watch: true
    env:
      NODE_ENV: development
    env_production:
      NODE_ENV: production
  • script: 需要启动的脚本。
  • instances: 启动的实例数量。cluster 模式下,PM2 会平衡负载。
  • exec_mode: 运行模式,可为 fork(默认)或 cluster
  • watch: 是否监视文件变动,自动重启应用。
  • env: 开发环境变量。
  • env_production: 生产环境变量。
4. 使用配置文件启动应用
bash 复制代码
pm2 start process.yml

设置启动脚本

5. pm2 startup
bash 复制代码
pm2 startup
  • 设置 PM2 为系统启动脚本,让应用在系统重启后自动启动。

查看进程列表

6. pm2 list
bash 复制代码
pm2 list
  • 显示所有被 PM2 管理的进程列表。
7. pm2 jlist
bash 复制代码
pm2 jlist
  • 以 JSON 格式输出进程列表。
8. pm2 prettylist
bash 复制代码
pm2 prettylist
  • 以美化格式输出进程列表。
9. pm2 describe id
bash 复制代码
pm2 describe [id]
  • 查看进程的详细信息,如环境变量、运行时间等。
10. pm2 monit
bash 复制代码
pm2 monit
  • 打开实时监控界面,显示 CPU 和内存使用情况等。

日志管理

11. pm2 logs --raw
bash 复制代码
pm2 logs
  • 实时查看日志。--raw 选项显示原始日志格式。
12. pm2 flush
bash 复制代码
pm2 flush
  • 清空所有日志文件。
13. pm2 reloadLogs
bash 复制代码
pm2 reloadLogs
  • 重新加载日志文件。

管理操作

14. 停止所有进程
bash 复制代码
pm2 stop all
15. 重启所有进程
bash 复制代码
pm2 restart all
16. 重新加载所有进程
bash 复制代码
pm2 reload all
  • 平滑重启,适用于无状态服务。
17. 优雅地重新加载所有进程
bash 复制代码
pm2 gracefulReload all
  • 优雅地平滑重启,等待当前连接结束后再重启。
18. 停止指定进程
bash 复制代码
pm2 stop [id]
  • 停止指定的进程,[id] 为进程 ID。
19. 重启指定进程
bash 复制代码
pm2 restart [id]
  • 重启指定的进程。
20. 删除指定进程
bash 复制代码
pm2 delete [id]
21. 删除所有进程
bash 复制代码
pm2 delete all

其他命令

22. 重置进程状态
bash 复制代码
pm2 reset
  • 重置进程的状态和计数器。
23. 更新 PM2
bash 复制代码
pm2 updatePM2
  • 更新 PM2 到最新版本。
24. 检查 PM2 是否运行
bash 复制代码
pm2 ping
25. 以非守护模式运行应用
bash 复制代码
pm2 start app.js --no-daemon
  • 以非守护模式启动应用,运行结束后 PM2 也会退出。
26. 启动应用并禁用版本控制
bash 复制代码
pm2 start app.js --no-vizion
  • 启动应用时不使用版本控制(vizion)。
27. 启动应用并禁用自动重启
bash 复制代码
pm2 start app.js --no-autorestart
  • 启动应用时不进行自动重启,即使应用崩溃。

总结

PM2 是一个功能强大且灵活的进程管理器,适合开发和生产环境的应用程序管理。提供多种配置和管理选项,帮助开发者轻松维护应用的稳定性和性能。

相关推荐
名字还没想好☜10 小时前
React 实现暗黑模式切换:localStorage 持久化、SSR 首屏闪烁与跟随系统主题
前端·javascript·react.js·ecmascript·react·next.js
自动化监测Learner11 小时前
主流 Web 端地图引擎对比:选型指南与优劣分析
javascript
console.log('npc')11 小时前
Git 冲突与 AI 协助指南
前端·人工智能·git·大模型
爱学堂IT分享12 小时前
Cesium可视化系统实战课程-Cesium教程学习
前端
糖墨夕12 小时前
理解大语言模型:Agent 的“大脑”
前端·agent
Rain的Java大神之路13 小时前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
cpolar技术支持13 小时前
浏览器也能跑本地 AI:用 Transformers.js + WebGPU 做一个最小推理 Demo,cpolar 给同事远程体验
前端·ai·cpolar·webgpu·transformers.js
计算机魔术师14 小时前
OpenAI 发布 GPT-6 Astra:多项基准刷新纪录, cybersecurity 能力达 Critical 阈值
前端
xy345314 小时前
Axure9.0中继器遮罩实现方法
前端·ui·html·axure·原型·产品设计
风骏时光牛马14 小时前
智能任务自动化协同AI工作流
前端