supervisor安裝以及監控管理rabbitmq消費者程序
阿新 • • 發佈:2022-05-19
簡介: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個消費者