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