
我正在努力讓主管工作以確保我的隊列系統始終運行。
以下是我從各種來源拼湊而成的步驟:(以 root 或超級使用者身分執行)
然:
# easy_install supervisor # echo_supervisord_conf > /etc/supervisord.conf # vi supervisord.conf
將以下內容貼到文件末尾:
command=/usr/bin/php /path/to/AppName/artisan --env=production --timeout=240 queue:listen
然:
# supervisord -c /etc/supervisord.conf # supervisorctl supervisor> status supervisor>
它不顯示任何內容。
然:
# service supervisord reload supervisord: unrecognized service
答案1
要讓 Supervisord 作為服務運行,您需要一個/etc/init.d/supervisord
檔案。我用了https://raw.githubusercontent.com/Supervisor/initscripts/master/redhat-init-equeffelec
使用 mods 來匹配 easy_install 將二進位檔案放置在 ( ) 的路徑/usr/local/bin/
並尋找 pid 並/var/run/
登入/var/log/
答案2
我只是花了幾個小時在這上面,試圖讓 Supervisor 和 Amazon Linux AMI 正常運作。我所經歷的正是你所提到的症狀。
一些怪癖:
- 繼續並在任何命令中包含(
-c /etc/supervisord.conf
或任何您的路徑),並確保每次都從同一用戶運行。supervisord
supervisorctl
在您的 中
/etc/supervisord.conf
,當您追加指令時,請確保在名稱中加上「program:」前綴,如下所示:[program:queue] command=/usr/bin/php /path/to/AppName/artisan --env=production --timeout=240 queue:listen
完成上述操作後,supervisorctl 終於辨識出佇列進程/程式。
我仍然沒有sudo service supervisor restart
認識到主管是一項服務 - 我懷疑這是因為我沒有在一些地方提到的暴發戶腳本。不確定我現在是否需要一個。
我使用的一些調試技術:
ps aux | grep super
查看它是否正在運行- sudo vim 編輯
/etc/supervisord.conf
,sudo /usr/local/bin/supervisorctl -c /etc/supervisord.conf
然後avail
,reload
等update
進行更新(而不是每次編輯 .ebextensions 並推送到 elastic beanstalk)