進程管理之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

 

發佈了31 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章