supervisor安裝以及監控管理rabbitmq消費者進程

簡介:Supervisor是用Python開發的一套通用的進程管理程序,能將一個普通的命令行進程變爲後臺daemon,並監控進程狀態,異常退出時能自動重啓。

1、安裝

apt-get install supervisor

2、複製配置文件(否則會無法啓動)

cp /etc/supervisor/supervisor.conf /etc/

說明:默認/etc/supervisor.conf爲空,需要將/etc/supervisor/supervisor.conf的內容複製一份到/etc/supervisor.conf中,否則啓動不了。

3、編寫配置文件

# 創建文件 rabbitmq-worker.conf並寫入下面配置

# 設置進程的名稱,使用 supervisorctl 來管理進程時需要使用該進程名 [program:rabbitmq
-worker]

# 默認爲 %(program_name)s,即 [program:x] 中的 x,後面接進程數 process_name
=%(program_name)s_%(process_num)02d

# 需要啓動執行的命令,這塊就是填入rabbitmq消費者腳本命令,注意,docker這塊不能有-it參數,否則報錯無法啓動 command
=docker exec php7.4-fpm php /var/www/html/rabbitmq/artisan rabbitmq:work --queue=Test

# 使用 root 用戶來啓動該進程 user
=root

# 在 supervisord 啓動的時候也自動啓動 autostart
=true

# 程序崩潰時自動重啓,重啓次數是有限制的,默認爲3次 autorestart=true

# 進程數 numprocs=2

# 重定向輸出的日誌 redirect_stderr=true

# 日誌路徑 stdout_logfile=/www/rabbitmq/rabbitmq_worker.log

4、相關命令說明

supervisord : supervisor的服務器端部分,用於supervisor啓動
supervisorctl:啓動supervisor的命令行窗口,在該命令行中可執行start、stop、status、
running:進程處於運行狀態
starting:Supervisor 收到啓動請求後,進程處於正在啓動過程中
stopped:進程處於關閉狀態
stopping:Supervisor 收到關閉請求後,進程處於正在關閉過程中
backoff:進程進入 starting 狀態後,由於馬上就退出導致沒能進入 running 狀態
fatal:進程沒有正常啓動
exited:進程從 running 狀態退出

5、常用命令

1、supervisorctl update   更新配置後必須執行更新命令才生效
2、supervisorctl status     查看supervisor進程
3、supervisorctl start rabbitmq-worker:*    啓動某個supervisor進程
4、supervisorctl stop rabbitmq-worker:*    停止某個supervisor進程
5、supervisorctl stop all    停止所有supervisor進程
6、supervisorctl restart rabbitmq-worker:*   重啓某個supervisor進程
7、supervisorctl reload    載入最新的配置文件,並按新的配置啓動、管理所有進程。
8、supervisord    啓動supervisord

補充說明:
supervisorctl status 列表參數說明
第一列是服務名;第二列是運行狀態,RUNNING表示運行中,FATAL 表示運行失敗,STARTING表示正在啓動,STOPED表示任務已停止; 第三/四列是進程號,最後是任務已經運行的時間。

6、效果

運行了2個rabbitmq消費者,這個數量是在配置裏面的numprocs的數量,進rabbitmq管理後臺可以看到2個消費者

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章