快速入门Node进程管理工具PM2

PM2 是一个守护进程管理器,它将帮助您管理和保持您的应用程序在线。PM2 入门很简单,它以简单直观的 C​​LI 形式提供,可通过 NPM 安装。

安装

最新的 PM2 版本可通过 NPM 或 Yarn 安装:

Shell

 
  1. $ npm install pm2@latest -g
  2. # or
  3. $ yarn global add pm2

启动应用程序

启动、守护和监控应用程序的最简单方法是使用以下命令行:

Shell

 
  1. $ pm2 start app.js

或快速启动任何其他应用程序:

Shell

 
  1. $ pm2 start bashscript.sh
  2. $ pm2 start python-app.py --watch
  3. $ pm2 start binary-file -- --port 1520

也可以设置一些命令行参数:

Shell

 
  1. # 指定一个应用程序的名称
  2. --name <app_name>
  3. # 监听并在文件变化时重启应用程序
  4. --watch
  5. # 设置应用重载的内存阈值
  6. --max-memory-restart <200MB>
  7. # 指定日志文件
  8. --log <log_path>
  9. # 向脚本传递额外的参数
  10. -- arg1 arg2 arg3
  11. # 自动重启之间的延迟
  12. --restart-delay <delay in ms>
  13. # 在日志中加入时间前缀
  14. --time
  15. # 不自动重启应用程序
  16. --no-autorestart
  17. # 指定强制重启的任务(cron)
  18. --cron <cron_pattern>
  19. # 附加到应用程序日志
  20. --no-daemon

 复制 文本

管理应用

管理应用程序状态很简单,命令如下:

Shell

 
  1. $ pm2 restart app_name
  2. $ pm2 reload app_name
  3. $ pm2 stop app_name
  4. $ pm2 delete app_name

 复制 文本

app_name 不是必须的,你也可以通过:all 对所有进程操作,id 作用于特定的进程 ID。

列出托管应用程序

列出 PM2 管理的所有应用程序的状态:

Shell

 
  1. $ pm2 [list|ls|status]

快速入门Node进程管理工具PM2

PM2

显示日志

实时显示日志:

Shell

 
  1. $ pm2 logs

显示指定多少行日志:

Shell

 
  1. $ pm2 logs --lines 200

基于终端的仪表板显示

这是一个直接适合终端的实时仪表板:

Shell

 
  1. $ pm2 monit

快速入门Node进程管理工具PM2

pm2.io:监控和诊断 Web 界面

基于 Web 的仪表板,带有诊断系统的跨服务器:

Shell

 
  1. $ pm2 plus

快速入门Node进程管理工具PM2

集群模式

对于 Node.js 应用程序,PM2 包含一个自动负载均衡器,它将在每个衍生进程之间共享所有 HTTP[s]/Websocket/TCP/UDP 连接。
以集群模式启动应用程序:

Shell

 
  1. $ pm2 start app.js -i max

查看更多关于集群模式相关信息:https://pm2.keymetrics.io/docs/usage/cluster-mode/
你也可以创建一个配置文件,名为Ecosystem的文件,来管理多个应用程序。生成一个Ecosystem文件:

Shell

 
  1. $ pm2 ecosystem

执行命令后将生成 ecosystem.config.js 文件

Source Code

 
  1. module.exports = {
  2. apps : [{
  3. name: "app",
  4. script: "./app.js",
  5. env: {
  6. NODE_ENV: "development",
  7. },
  8. env_production: {
  9. NODE_ENV: "production",
  10. }
  11. }, {
  12. name: 'worker',
  13. script: 'worker.js'
  14. }]
  15. }

 复制 文本

使用以下命令就可以快速启动它:

Shell

 
  1. $ pm2 start ecosystem.config.js

设置开机启动脚本

使用您在服务器启动/重新启动时管理的进程重新启动 PM2 至关重要。要解决此问题,只需运行此命令以生成开机自启动脚本:

Shell

 
  1. $ pm2 startup

保存:

Shell

 
  1. $ pm2 save

更新 PM2

更新很简单,版本之间变动也不是很大:

Shell

 
  1. $ npm install pm2@latest -g

然后运行:

Shell

 
  1. $ pm2 update

命令备忘清单

Shell

 
  1. # 普通模式
  2. pm2 start app.js --name my-api # 教程名称
  3. # 集群模式
  4. pm2 start app.js -i 0 # 将根据可用的CPU,用LB启动最大的进程
  5. pm2 start app.js -i max # 与上述相同,但已废弃。
  6. pm2 scale app +3 # 将 "应用程序 "扩大到3个
  7. pm2 scale app 2 # 将 "应用程序 "扩大或缩小到2个工作者总数
  8. #列表
  9. pm2 list # 显示所有进程的状态
  10. pm2 jlist # 以原始JSON格式打印进程列表
  11. pm2 prettylist # 以美化的JSON格式打印进程列表
  12. pm2 describe 0 # 显示关于特定进程的所有信息process
  13. pm2 monit # 监控所有进程
  14. # 日志
  15. pm2 logs [--raw] # 以流式方式显示所有进程的日志
  16. pm2 flush # 清空所有日志文件
  17. pm2 reloadLogs # 重新加载所有日志
  18. # 动作
  19. pm2 stop all # 停止所有进程
  20. pm2 restart all # 重新启动所有进程
  21. pm2 reload all # 将0s停机时间重新加载(针对网络应用)
  22. pm2 stop 0 # 停止特定的进程ID
  23. pm2 restart 0 # 重新启动特定的进程ID
  24. pm2 delete 0 # 将从pm2列表中删除进程
  25. pm2 delete all # 将从pm2列表中删除所有进程
  26. # 杂项
  27. pm2 reset <process> # 重置元数据(重启时间...)
  28. pm2 updatePM2 # 更新内存中的pm2
  29. pm2 ping # 确保pm2守护进程已被启动
  30. pm2 sendSignal SIGUSR2 my-app # 发送系统信号给脚本
  31. pm2 start app.js --no-daemon
  32. pm2 start app.js --no-vizion
  33. pm2 start app.js --no-autorestart
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值