
キュー システムが常に実行されていることを確認するために、スーパーバイザーを動作させようとしています。
以下は、さまざまな情報源から集めた、私が実行した手順です。(ルートまたはスーパーユーザーとして実行)
ラン:
# 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
easy_installがバイナリを配置するパス(/usr/local/bin/
)に一致するようにmodsを追加し、pidを見つけてログインし/var/run/
、/var/log/
答え2
私はこれに数時間を費やし、スーパーバイザーと 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 はキュー プロセス/プログラムをようやく認識しました。
私はまだ supervisor をサービスとして認識できていませんsudo service supervisor restart
。それは、いくつかの場所で言及されている upstart スクリプトを持っていないからだと思います。現時点では、それが必要なのかどうかはわかりません。
私が使用したデバッグ手法のいくつかは次のとおりです。
ps aux | grep super
実行されているかどうかを確認する- sudo vim で を編集し
/etc/supervisord.conf
、、などを使用sudo /usr/local/bin/supervisorctl -c /etc/supervisord.conf
して更新します (.ebextensions を編集して毎回 elastic beanstalk にプッシュするのではなく)avail
reload
update