僕は発展途上技術者

delayed_job を monit で動かし、サーバー再起動時に自動起動するようにする

結構苦労したので、備忘録的にメモしておきます。

### monit をインストール


% sudo apt-get install monit


### monit の自動起動を設定


% sudo update-rc.d monit defaults


### monitrc の編集


% sudo vi /etc/monit/monitrc


以下のようにコメントを外す。


set httpd port 2812 and
# use address localhost # only accept connection from localhost
allow localhost


monit の状況を確認するコマンドが実行できることを確認。


% sudo /etc/init.d/monit restart
% sudo monit summary


ここが一番はまった箇所。delayed_job が提供するサンプルのmonitrcではうまく動かず、以下のように設定したところ動いた。


## /var/www/apps/{app_name}/shared/config

check process delayed_job
with pidfile /var/www/apps/{app_name}/shared/pids/delayed_job.pid
start program = "/bin/su - app -c 'cd /var/www/apps/{app_name}/current; RAILS_ENV=production script/delayed_job start'"
stop program = "/bin/su - app -c 'cd /var/www/apps/{app_name}/current; RAILS_ENV=production script/delayed_job stop'"



## /etc/monit/monitrc

include /var/www/apps/{app_name}/shared/config/delayed_job.monitrc

を追加

プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Raspberry Piではじめる どきどきプログラミングを書きました。

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Twitter @jishiha

最近のエントリー

アーカイブ