0

Monit を使用して、いくつかの Rails アプリがクラッシュしたときに監視および再起動しようとしています。アプリは Sphinx を使用します。モニターは、通常シェルで機能するコマンドを受け入れません。

monitrc 構成は次のようになります。

...
check process app_name
  with pidfile "/path/to/pidfile/searchd.production.pidfile"
  start program = sudo su user_name -c "cd /home/app_name/current
    && RAILS_ENV=production rake ts:start"
  stop program = sudo su user_name -c "cd /home/app_name/current
    && RAILS_ENV=production rake ts:stop"
...

pidfile へのアクセス許可が拒否されましたが、試してみると:

with pidfile "sudo /path/to/pidfile/searchd.production.pidfile"

それは動作しません。

同様に、monit は start および stop program bash コマンドを受け入れません。

私が見逃している明らかな回避策はありますか?ちなみに私はノブです。

http://capitation.rubyforge.org/recipes/sphinx-monit.html#sphinx:monit:startも見ましたが、よくわかりません。

4

1 に答える 1

0

bundle exec呼び出す前に配置してみてくださいrake。このような:

start program = sudo su user_name -c "cd /home/app_name/current
  && RAILS_ENV=production bundle exec rake ts:start"
stop program = sudo su user_name -c "cd /home/app_name/current
  && RAILS_ENV=production bundle exec rake ts:stop"

これが、本番サーバーのpumaサーバーとワーカーを監視できなかった主な原因でした。delayed_job

アップデート:

私の作業例:

check process puma with pidfile <%= puma_pidfile %>
  start program = "/bin/su - ubuntu -c 'cd /home/ubuntu/apps/artvasion/current && bundle exec puma -C config/puma.rb'"
  stop program =  "/bin/su - ubuntu -c 'kill `cat /home/ubuntu/apps/artvasion/shared/pids/puma.pid`'"
  # ...monitoring stuff
于 2012-09-19T08:32:56.997 に答える