union platformをdaemontoolsで起動

めんどくさくて、ついこの間まで

cd /path/to/union/
nohup startserver.sh &

とかしてたのは内緒です。

今回は、CentOS5.5にdaemontoolsをインストールして daemontools経由でunion serverを起動します。

さて、まずはdaemontoolsをインストールです。 すでにインストール済みの場合は読み飛ばしましょう。

daemontoolsのインストール

yumレポジトリの追加

cd /etc/yum.repos.d
sudo wget http://download.opensuse.org/repositories/home:/weberho:/qmail/CentOS_5/home:weberho:qmail.repo
sudo vim home:weberho:qmail.repo

標準レポジトリ以外が常に有効化されているのはあまり好きじゃないので 以下のように、enabled=0に変更しました。

[home_weberho_qmail]
name=qmail Mail Transfer Agent and related tools (CentOS_5)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/home:/weberho:/qmail/CentOS_5/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/home:/weberho:/qmail/CentOS_5/repodata/repomd.xml.key
enabled=0

yumでinstall

sudo yum install daemontools --enablerepo=home_weberho_qmail

サービス配置用のディレクトリを作成しておく

sudo mkdir /service

linux起動時にdaemontoolsを立ち上げるようにしておく

sudo vim /etc/inittab

最終行に追記

#daemontools
SV:123456:respawn:/usr/bin/svscanboot

反映させる

sudo /sbin/init q

起動しているか確認

ps auxw|grep svscanboot

こんなのが出るはずです。

2000      5956  0.0  0.0   3052   776 pts/0    R+   22:40   0:00 grep svscanboot
root     51195  0.0  0.0   2532  1076 ?        Ss   21:28   0:00 /bin/sh /usr/bin/svscanboot

daemontoolsの起動スクリプトを準備

適当なパスに起動スクリプト用のディレクトリを作成しておく

sudo mkdir -p /usr/local/daemontools/union

起動スクリプトを記述する。

sudo vim /usr/local/daemontools/union/run

以下のようなスクリプトを記述する。

#!/bin/sh

exec 2>&1
cd /usr/local/union || exit 1
exec 
java -cp lib/union.jar:lib/stax-api-1.0.1.jar:lib/wstx-asl-3.2.6.jar net.user1.union.core.UnionMain start

権限を与えて、/service配下にシンボリックリンクを貼ります。

sudo chmod +x /usr/local/daemontools/union/run
sudo ln -s /usr/local/daemontools/union /service

起動と停止など

起動は

sudo svc -u /service/union

停止は

sudo svc -d /service/union

という感じで。