この記事は私自身のmediumにも記載されています。
Laravel Queue work with supervisor on AWS EC2
1. Supervisorをインストールする
Amazon レポジトリーにはsupervisorが入っておりません。
なのでepel
レポジトリーを使ってインストールする必要があります。
sudo yum --enablerepo=epel install supervisor
2. supervisorをスタート
sudo service supervisord start
Redirecting to /bin/systemctl start supervisord.service
このメッセージが表示されたらインストール成功です。
3. supervisor設定ファイル修正
supervisorにworkerを追加するため、設定ファイルを修正します。
sudo vi /etc/supervisord.conf
下記を追記しましょう。
[program:worker]
command=php /project-home/artisan queue:work
process_name=%(program_name)s_%(process_num)02d
numprocs=2
autostart=true
autorestart=true
user=root
redirect_stderr=true
stdout_logfile=/project-home/storage/logs/worker.log
worker.log
ファイルをログパスに追加することを忘れないでください。
touch /project-home/storage/logs/worker.log
4. supervisor設定ファイルの読み込み
修正された設定ファイルを読み込ませるため、下記コマンドを実行します。
sudo supervisorctl reread
正しく入力したら、このようなメッセージが表示されます。
worker: available
5. supervisor再起動
設定を適用させるためにsupervisorを再起動しましょう。
sudo service supervisord restart
workerが動作されているのか確認しましょう。
sudo supervisorctl status
下記のようなメッセージが表示されます。pidとuptimeは私のメッセージと違うはずです。
worker:worker_00 RUNNING pid 1043936, uptime 0:00:10
worker:worker_01 RUNNING pid 1043937, uptime 0:00:10
6. supervisorをインスタート再起動時にスタートするように設定する
sudo chkconfig supervisord on
終わり!