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