pm2是一个进程管理工具,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能
pm2安装前提是先安装node.js
1、 pm2需要全局安装
$ npm install pm2@latest -g
# or
$ yarn global add pm2
2、进入项目根目录
2.1 启动进程/应用
pm2 start app.js//也可以是php文件,不过需要设置--interpreter 为php
2.2 重命名进程/应用
pm2 start app.js --name wb123
2.3 添加进程/应用
watch pm2 start bin/www --watch
2.4 结束进程/应用
pm2 stop 进程名
2.5 结束所有进程/应用
pm2 stop all
2.6 删除进程/应用
pm2 delete 进程名
2.7 删除所有进程/应用
pm2 delete all
2.8 列出所有进程/应用
pm2 list
2.9 查看某个进程/应用具体情况
pm2 describe 进程名
2.10 查看进程/应用的资源消耗情况
pm2 monit
2.11 查看pm2的日志
pm2 logs
2.12 若要查看某个进程/应用的日志,使用
pm2 logs 进程名
2.13 重新启动进程/应用
pm2 restart 进程名
2.14 重新启动所有进程/应用
pm2 restart all
摘自:https://www.jianshu.com/p/e15fd72727fe
二,pm2一些参数说明
# 指定应用程序名称
--name <app_name>
# 观察当文件更改时,重新启动应用程序
--watch
# 设置应用程序重新加载的内存值
--max-memory-restart <200MB>
# 指定日志文件
--log <log_path>
# 向脚本传递额外的参数
-- arg1 arg2 arg3
# 自动重新启动之间的延迟
--restart-delay <delay in ms>
# 带时间前缀的日志
--time
# 不自动重启
--no-autorestart
# 指定强制重启的cron
--cron <cron_pattern>
# 附加到应用程序日志
--no-daemon
name | (string) | “my-api” | 进程名(默认是文件的名字) |
script | (string) | ”./api/app.js” | 脚本路径 |
cwd | (string) | “/var/www/” | 您的应用程序将从哪个目录启动 |
args | (string) | “-a 13 -b 12” | 传递给脚本的所有参数的字符串 |
interpreter | (string) | “/usr/bin/python” | 解释程序(解释器)的相对路径(默认是node),例如--interpreter php,意思是用php执行 |
interpreter_args | (string) | ”–harmony” | 选择传递给解释器 |
node_args | (string) | 别名interpreter_args |
具体请参考https://pm2.keymetrics.io/docs/usage/application-declaration/#general
pm2执行yml文件
# npm install pm2 -g
# pm2 start pm2.yml
apps:
# queue
- name: 'xiaocan-queue'
interpreter: 'php'
script: 'yii'
args: 'queue/listen'
instances: 5
watch: false
log_date_format: 'YYYY-MM-DD HH:mm:ss'
error_file: './runtime/pm2-error_queue.log'
out_file: './runtime/pm2-out_queue.log'
combine_logs: false
# 同步用户优惠券过期
- name: 'xiaocan-cron-user-coupon-status'
interpreter: 'php'
script: 'yii'
args: 'cron-user-coupon-status'
instances: 1
watch: false
log_date_format: 'YYYY-MM-DD HH:mm:ss'
error_file: './runtime/pm2-error_cron-user-coupon-status.log'
out_file: './runtime/pm2-out_user-cron-user-coupon-status.log'
combine_logs: false
# 同步取消订单
- name: 'xiaocan-cron-cancel-order'
interpreter: 'php'
script: 'yii'
args: 'cron-cancel-order'
instances: 1
watch: false
log_date_format: 'YYYY-MM-DD HH:mm:ss'
error_file: './runtime/pm2-error_cron-cancel-order.log'
out_file: './runtime/pm2-out_cron-cancel-order.log'
combine_logs: false
# 消息推送
- name: 'xiaocan-web-msg-sender-service'
interpreter: 'php'
script: 'workman.php'
args: 'start'
instances: 1
watch: false
log_date_format: 'YYYY-MM-DD HH:mm:ss'
error_file: './runtime/pm2-error_web-msg-sender-service.log'
out_file: './runtime/pm2-out_user-web-msg-sender-service.log'
combine_logs: false