私は以前、次のMonitスクリプトを使用してMonitモニタリングのレスキューを行っていました
check process resque_worker_production_QUEUE
with pidfile /var/tmp/resque_production.pid
start program = "/usr/bin/env HOME=/home/eg RACK_ENV=production PATH=/usr/local/bin:/usr/local/ruby/bin:/usr/bin:/bin:$PATH /bin/sh -l -c 'cd /apps/eg/production/current; nohup bundle exec rake environment resque:work RAILS_ENV=production QUEUE=mailer VERBOSE=1 PIDFILE=/var/tmp/resque_production.pid & >> log/resque_worker_production_QUEUE.log 2>&1'" as uid eg and gid eg
stop program = "/bin/sh -c 'cd /apps/eg/production/current && kill -9 $(cat
次に、いくつかの変更を加えました。最も顕著なのは、システム全体の rvm インストールを削除したことです。 /usr/local/ruby/bin に ruby をインストールすることを想定しています。この頃、monit は resque を開始できなくなりました。原因は他にあるのかもしれませんが、破損の原因はこれらのアンインストールだったと思います。
スクリプトを調べたところ、/usr/local/ruby/bin が存在しないことに気付きました。そのため、rvm の ruby が /home/ の周りにある唯一のものであるため、スクリプトが指し示すべきだと思われるものに変更してみました。例:/.rvm/rubies/ruby-1.9.3-p194/bin
しかし、それはうまくいきませんでした。だから私はもう少しグーグルで、これもうまくいかなかった提案を見つけました:
check process resque_worker_production_QUEUE
with pidfile /var/tmp/resque_production.pid
start program = "/bin/bash -l -c 'cd /apps/eg/production/current; nohup bundle exec rake environment resque:work RAILS_ENV=production QUEUE=mailer VERBOSE=1 PIDFILE=/var/tmp/resque_production.pid & >> log/resque_worker_production_QUEUE.log 2>&1'" as uid eg and gid eg
ログに記録されるのは次のとおりです。
[UTC Oct 5 03:06:38] error : 'resque_worker_production_QUEUE' process is not running
[UTC Oct 5 03:06:38] info : 'resque_worker_production_QUEUE' trying to restart
[UTC Oct 5 03:06:38] info : 'resque_worker_production_QUEUE' start: /bin/bash
[UTC Oct 5 03:07:08] error : 'resque_worker_production_QUEUE' failed to start
したがって、これをさらにデバッグする方法がわかりません。助言がありますか?