自宅サーバ設置 その2

今日からDNSサーバ、メールサーバ、Webサーバと言ったコアになるサービスの立ち上げを行う。DNSはdjbdns、メールサーバはqmailと言う感じでdjbが作ったサービスで固めることにした。HTTPサーバは言わずともしれたApacheを選択。

daemontool

daemontoolはdjb謹製のデーモン管理ツールである。デーモンの起動/停止/設定ファイルの読み直しなどの操作を統一的に扱えるようにできたり、ログローテーションができたり、必要なデーモンが常時起動しているか監視できるツールである。一昨日までの対応でdaemontoolは使えるようになっているので、あとはざくざくサービスを登録すればよいと言うわけだ。

準備

こんな起動スクリプト(FreeBSDの場合)を/etc/rc.d/に入れておけばdaemontoolはサーバ起動時に自動的に起動する。

#!/bin/sh
#
# daemontools by djb
#
DTdir=/usr/local/daemontools/bin

case "$1" in
 start)
    if [ -x $DTdir/svscan -a -d /service ]; then
        env - PATH=$DTdir\:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin \
        csh -cf 'svscan /service &' ; echo -n ' daemontools'
    fi ;;
 stop)
    $DTdir/svc -d /service/*
    (sleep 1; killall svscan)& ;;
esac

ただし上のスクリプトを読めば分かるように、/serviceを作らないとdaemontoolは使えるようにならないので、早速/serviceを作成する。/ ディレクトリにファイルを作るのに抵抗を感じないわけではないが、djb-toolを使うという時点で自分のポリシーよりもdjb先生の方法論を優先すべきだろう。ということで_躊躇なくディレクトリを作る。_(どうせこのディレクトリにはシンボリックリンクしか置かないし。気にしない。)

mkdir /service
chmod 755 /service

daemontoolを使ったデーモン管理の基礎

daemontoolを使ってサービスを起動してみる。とりあえずさくっと設定できそうなcannaを例にしてみる。ますcannaのディレクトリ(/usr/local/cannaとする)にデーモン管理用ディレクトリを作る。(サービスの名前と同名の方が都合がよい。)

# cd /usr/local/canna/
# mkdir /usr/local/canna/canna

ここで作成した管理用ディレクトリ(/usr/local/canna/canna)にサービスを起動するrunスクリプトを作る。cannaの場合はこんな感じ。

```bash /usr/local/canna/canna/run #!/bin/sh /bin/rm -f /tmp/.iroha_unix/IROHA PATH=/usr/iekei/Canna/bin exec 2>&1 exec cannaserver -d


更にデーモンが吐き出すログを取りたい時はログ管理用のディレクトリを作る。
    
    # cd /usr/local/canna/canna/log
    # mkdir /usr/local/canna/canna/log

ここにもrunスクリプトを置く

```bash /usr/local/canna/canna/log/run
#!/bin/sh
exec setuidgid bin multilog t ./main

ここでサービス登録といきたいところだが… /usr/local/canna/canna/run を実行してcannaserverが立ち上がるかどうか確認する。もしうまく立ち上がったらなOKで、サービスを登録しよう。サービスの登録は簡単で/usr/local/canna/canna/のシンボリックリンクを/serviceに作るだけでおしまいで、5秒以内にcannnaserverが自動的に起動される。

# ln -s /usr/local/canna/canna/ /servece/canna

ログの見方や管理コマンドの使い方は追々お勉強。こんな感じでサービスを登録していけば良いので、daemontoolを使うことで、サービスの起動や終了やメンテのための一時停止などはLinuxでもBSDでも他でも統一的にあつかえる。何とも便利だと思うのである。(まぁ良いラッパーと言うことになるのかな。)

軽井沢ミーティング2018に参加

軽井沢ミーティング2018に初参加! 天気良くてよかった!さすがに5月末の週末は本当に天気が良い。Roadsterのイベントは前日入り出来る場合は可能な限り前日から参加している。主催者発表による今回の参加者は1975人、車はは1,002台。内訳は、NAは37%、NBは22%...… Continue reading

2017年も今日でおしまい

Published on December 31, 2017

Profoto A1の色温度の話

Published on December 21, 2017