进程管理之pm2

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

猜你喜欢

转载自blog.csdn.net/qiuqiuLovecode/article/details/103818613