daemontoolsによるwebアプリケーション管理

作成したアプリケーションのデーモンを管理していく方法を紹介します。
アプリケーションだけではなくログ監視ツールなど、デーモン化しないといけないものを管理するのに長けています。

インストール

以前パッケージによるインストール方法は紹介しました。
webサーバー初期設定 - Linux編 - 城好きwebプログラマーの生態メモ

今回はyumによるインストールの仕方を紹介します。
まずyumレポジトリにはデフォルトとして入っていないので追加します。

# wget http://download.opensuse.org/repositories/home:/weberho:/qmailtoaster/CentOS_CentOS-6/home:weberho:qmailtoaster.repo
# mv home\:weberho\:qmailtoaster.repo /etc/yum.repos.d/qmailtoaster.repo

# vim /etc/yum.repos.d/qmailtoaster.repo
enabled=0

あとはインストールするだけです。

# yum install --enablerepo=home_weberho_qmailtoaster daemontools

導入

実際にdaemontoolsの使い方を書いていきます。

まずディレクトリ作成。今回はwebアプリということで/var/www以下に作ります。

# mkdir -p /var/www/daemon/sample_daemon/log/main

実行ファイルを作成します。
実行したい内容なので人それぞれになると思います。
ここでは例としてシェルファイルを起動させています。

# vim /var/www/daemon/sample_daemon/run
#!/bin/sh
exec 2>&1
exec /var/www/sample/Sample/script/sample_production.sh


ログ実行ファイルを作成します。

# vim /var/www/daemon/sample_daemon/log/run
#!/bin/sh
exec 2>&1
exec setuidgid root multilog t ./main

ログファイルは例えば

exec setuidgid root multilog t s5000000 n50 ./main

こんな感じでログファイルの数を操作できます。


あとは実行権限をつけて/service以下にシンボリックリンクを貼ります。

# chmod +x /var/www/daemon/sample_daemon/run /var/www/daemon/sample_daemon/log/run
# mkdir /service
# ln -s /var/www/daemon/sample_daemon /service

/serviceディレクトリ以下にあるすべてのデーモンに対してsuperviseによるデーモンの監視をするためsvscanをかけます

# svscan /service &

サーバー再起動時も起動しておきたい場合は以下を追加してください。

# vim /etc/inittab
SV:123456:respawn:/command/svscanboot    

これで完了です。
以下のコマンドを参考に管理してください。

デーモンの起動

$ svc -u /service/sample_daemon/

デーモンの停止

$ svc -d /service/sample_daemon/

デーモンの再起動

$ svc -t /service/sample_daemon/


http://work.castleman-blog.com/entry/2013/02/25/163417