CentOS(6.4) に daemontools をインストールした
PSGI なアプリを運用するにあたり、落ちた時に自動起動して欲しいなと思うわけです。そこで daemontools を導入しようと考えている。runit や monit 等同様なツールもあるわけだけど、 ネットで調べる限りだと daemontools での運用実績はかなり多そうなので良さそうかと思ったのだ。
インストール手順
何はともあれインストールしないと始まらないし、さくっとインストールしてみる。
パッチを当てないとコンパイルに失敗するので、併せてダウンロードしておこう。
本体&パッチのダウンロード
% wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz % tar xpvf daemontools-0.76.tar.gz % cd admin/daemontools-0.76 % wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
パッチ適用&コンパイル
% patch -s -p1 <./daemontools-0.76.errno.patch % ./package/compile
このままインストールすると /command にシンボリックリンクが張られて、そこからさらに /usr/local/bin にシンボリックが張られるのだが、気持ち悪いし直接 /usr/local/bin にインストールする。
svscanboot の設定に /command の記述があるので、/usr/local/bin に修正しておこう。他のファイルも同様に修正しておくとよい。
% cd command/ % sudo install -o root -g root -m 0755 -s envdir /usr/local/bin % sudo install -o root -g root -m 0755 -s envuidgid /usr/local/bin % sudo install -o root -g root -m 0755 -s fghack /usr/local/bin % sudo install -o root -g root -m 0755 -s multilog /usr/local/bin % sudo install -o root -g root -m 0755 -s pgrphack /usr/local/bin % sudo install -o root -g root -m 0755 -s readproctitle /usr/local/bin % sudo install -o root -g root -m 0755 -s setlock /usr/local/bin % sudo install -o root -g root -m 0755 -s setuidgid /usr/local/bin % sudo install -o root -g root -m 0755 -s softlimit /usr/local/bin % sudo install -o root -g root -m 0755 -s supervise /usr/local/bin % sudo install -o root -g root -m 0755 -s svc /usr/local/bin % sudo install -o root -g root -m 0755 -s svok /usr/local/bin % sudo install -o root -g root -m 0755 -s svscan /usr/local/bin % sudo install -o root -g root -m 0755 -s svstat /usr/local/bin % sudo install -o root -g root -m 0755 -s tai64n /usr/local/bin % sudo install -o root -g root -m 0755 -s tai64nlocal /usr/local/bin % sudo install -o root -g root -m 0755 svscanboot /usr/local/bin
/service ディレクトリを作成する。
% sudo ./package/run
Upstart の設定をする。
% sudo vim /etc/init/svscan.conf start on runlevel [12345] respawn exec /usr/local/bin/svscanboot
起動する
% sudo initctl reload-configuration % sudo initctl list % sudo initctl start svscan
これで daemontools が使用できるようになった。
と、daemontools のインストールをしておいてなんだが、supervisor を使ってみたいと今思ってる。