djangoサーバのupstartスクリプトのHardyへのバックポート

upstart設定ファイルが開発マシンで動くようになって、本番で実装しようと思ったらなんとHardyだとupstartが古くて全然違ってた。 MavricとHardyでのupstartの相違点をメモっておく。

最近の(Mavric)upstart定義ファイル例

サービス定義ファイル: /etc/init/hoge.conf
サービス名は設定ファイルの.conf前の部分からとっているよう。


start on filesystem # 古いupstartではfilesystemは使えない。
respawn
respawn limit 10 5 # これもあやしい。
expect daemon # これはサポートされていない
exec \
sudo -u www-data \
/usr/bin/python2.6 \
/home/www/hoge/manage.py \
runfcgi \
method=thread \
....

古い(Hardy)upstart定義ファイル例

サービス定義ファイル: /etc/event.d/hoge
.confが無いのに注目。


# hoge <---------- サービス名はここから取っているよう。
description "hoge-13009-pro server"
start on runlevel 2 # start on filesystemはわかってもらえない。
respawn
# expect daemonが無いので、サーバをdaemonizeさせないdaemonize=falseというオプションを与える。
exec \
sudo -u www-data \
/home/www/hoge/hoge-09/hoge-13009-pro \
runfcgi \
daemonize=false \
method=thread \
....