めんどくさくて、ついこの間まで
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
という感じで。