daemontoolsのインストール

Posted by Tatsuyano on Tue, Jul 29, 2014
In
Tags middleware

ダウンロード

# mkdir -p /package
# chmod 1755 /package
# cd /package

# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
# tar zxvf daemontools-0.76.tar.gz

インストールスクリプトの修正

/package/admin/daemontools-0.76/src/conf-cc

gcc -O2 -Wimplicit -Wunused -Wcomment -Wchar-subscripts -Wuninitialized -Wshadow -Wcast-qual -Wcast-align -Wwrite-strings #<- 削除
gcc -O2 --include /usr/include/errno.h #<-書き換え

インストール

# cd /admin/daemontools-0.76
# /package/install

daemontools本体の起動設定 /etc/init/svscan.conf

start on runlevel [12345]
respawn
exec /usr/local/bin/svscanboot

daemontoolsのコマンド

ややこしいのですが、実際のコマンドは、/package/admin/daemontools/commandにあります。

/usr/local/bin => /command => /package.../command
の順番にシンボリックリンクが貼ってあります。

監視用スクリプトの作成

memcachedを監視するためのスクリプトを作成します。

# chmod +x /var/memcached/run
# ln -s /var/memcached /service/memcached
# /etc/init.d/memcached stop

/var/memcached/run

#!/bin/sh

if [ -f /etc/sysconfig/memcached ];then
        . /etc/sysconfig/memcached
fi

exec 2>&1
exec /usr/bin/memcached -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN
$OPTIONS

daemontoolsの起動

sh -c 'svscan /service &'

daemontoolsを起動すると、監視対象のmemcachedが起動されます。

# ps aux|grep [m]em
root     10011  0.0  0.0   4048   348 ?        S    07:52   0:00 supervise memcached
apache   10012  0.0  0.1 316772  1104 ?        Sl   07:52   0:00 /usr/bin/memcached -p 11211 -u apache -m 64 -c 1024

daemontoolsのコマンド

監視対象の起動、停止

# svc -d /service/memcached   #=> down
# svc -u /service/memcached   #=> up
# svc -t /service/memcached   #=> restart

状態の確認

svstat /service/memcached
 /service/memcached: down 216 seconds, normally up

お疲れ様でした。

関連する記事