AWS AMI Linux でのスーパーバイザーのセットアップ

AWS AMI Linux でのスーパーバイザーのセットアップ

キュー システムが常に実行されていることを確認するために、スーパーバイザーを動作させようとしています。

以下は、さまざまな情報源から集めた、私が実行した手順です。(ルートまたはスーパーユーザーとして実行)

  1. ラン:

    # easy_install supervisor
    # echo_supervisord_conf > /etc/supervisord.conf
    # vi supervisord.conf
    
  2. 次の内容をファイルの末尾に貼り付けました:

    command=/usr/bin/php /path/to/AppName/artisan --env=production --timeout=240 queue:listen
    
  3. ラン:

    # supervisord -c /etc/supervisord.conf
    # supervisorctl
    supervisor> status
    supervisor>
    

    何も表示されません。

  4. ラン:

    # service supervisord reload
    supervisord: unrecognized service
    

答え1

supervisordをサービスとして実行するにはファイルが必要です/etc/init.d/supervisordhttps://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に (または任意のパス)を含め、毎回同じユーザーから実行するようにしてください。supervisordsupervisorctl
  • /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 にプッシュするのではなく)availreloadupdate

関連情報