Adachinですっ。
久しぶりのMonitネタですが、
ruby/Railsで「delayed_job」がたまに落ちてる時があるとのことで、
Monitで自動起動させてほしいと依頼があり、ハマったのでブログします。
dalayed_job wiki⇛https://github.com/collectiveidea/delayed_job
■Monitの初期設定
以下を参考にしてください。
■delayed_job
そもそも起動と停止は以下のようなコマンドで行います。
1 2 |
・railsディレクトリ /adachin/manage/current |
1 2 |
・pid /adachin/manage/current/tmp/pids/delayed_job.pid |
1 2 |
・起動 RAILS_ENV=production bundle exec script/delayed_job start |
1 2 |
・停止 RAILS_ENV=production bundle exec script/delayed_job stop |
■トリガー設定
1 2 |
・トリガーファイル /etc/monit.d/delayed-job |
1 2 3 4 5 |
[root@server]/etc/monit.d# cat delayed-job check process delayed_job with pidfile "/adachin/manage/current/tmp/pids/delayed_job.pid" start program = "/bin/su - adachin -c 'cd /adachin/manage/current; RAILS_ENV=production bundle exec script/delayed_job start'" stop program = "/bin/su - adachin -c 'cd /adachin/manage/current; RAILS_ENV=production bundle exec script/delayed_job stop'" |
■まとめ
基本トリガーはrootユーザで監視しているので、どのユーザ/どのディレクトリでdelayed-jobが動いてるのか
/実行しているのかを考えれば一瞬で解決したお話。
なので、基本どんなプロセスも監視できるはず。
あとは実際そのコマンドを実行して、停止させてテストすればOKですな。
参考:自力
0件のコメント