安裝
apt-get install supervisor
/etc/supervisor/supervisord.conf
編輯:
; 將supervisor.sock 的路徑換成如下
[unix_http_server]
file=/var/supervisor/run/supervisor.sock ; (the path to the socket file)
; 將supervisord.log 和 supervisord.pid 的路徑換成如下
[supervisord]
logfile=/var/supervisor/log/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/supervisor/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
; 將supervisor.sock 的路徑換成如下
[supervisorctl]
serverurl=unix:///var/supervisor/run/supervisor.sock ; use a unix:// URL for a unix socket
; 將最底部的files路徑換成如下
[include]
files = /var/supervisor/conf/*.conf
在/etc/supervisor/conf.d目錄里創(chuàng)建一個(gè).conf文件,這里命名為queue_work.conf,內(nèi)容如下:
[program:queue_worker] ;項(xiàng)目名稱
directory = /opt/www/tp5.1 ; 程序的啟動(dòng)目錄,項(xiàng)目根目錄的上一級(jí)
command = php think queue:work --queue queueName --daemon ; 啟動(dòng)命令 queueName就是隊(duì)列名
process_name=%(program_name)s_%(process_num)02d
numprocs = 3 ; 開啟的進(jìn)程數(shù)量
autostart = true ; 在 supervisord 啟動(dòng)的時(shí)候也自動(dòng)啟動(dòng)
startsecs = 5 ; 啟動(dòng) 5 秒后沒有異常退出漠魏,就當(dāng)作已經(jīng)正常啟動(dòng)了
autorestart = true ; 程序異常退出后自動(dòng)重啟
startretries = 3 ; 啟動(dòng)失敗自動(dòng)重試次數(shù)嚼酝,默認(rèn)是 3
user = root ; 用哪個(gè)用戶啟動(dòng)
redirect_stderr = true ; 把 stderr 重定向到 stdout,默認(rèn) false
stdout_logfile_maxbytes = 50MB ; stdout 日志文件大小桑孩,默認(rèn) 50MB
stdout_logfile_backups = 20 ; stdout 日志文件備份數(shù)
; stdout 日志文件,需要手動(dòng)創(chuàng)建目錄(supervisord 會(huì)自動(dòng)創(chuàng)建日志文件)
stdout_logfile = /var/supervisor/log/queue_worker.log
loglevel=info
存在多個(gè)隊(duì)列名拜鹤,這種情況將多個(gè)隊(duì)列名用逗號(hào)拼接起來:
command = php think queue:work --queue queueName1,queueName2 --daemon ;
command | 說明 |
---|---|
supervisorctl stop program_name | 停止某個(gè)進(jìn)程 |
supervisorctl start program_name | 啟動(dòng)某個(gè)進(jìn)程 |
supervisorctl restart program_name | 重啟某個(gè)進(jìn)程 |
supervisorctl stop all | 停止全部進(jìn)程 |
supervisorctl reload | 載入最新的配置文件,停止原有進(jìn)程并按新的配置啟動(dòng)流椒、管理所有進(jìn)程 |
supervisorctl update | 根據(jù)最新的配置文件敏簿,啟動(dòng)新配置或有改動(dòng)的進(jìn)程,配置沒有改動(dòng)的進(jìn)程不會(huì)受影響而重啟 |
supervisorctl status | 查看狀態(tài) |