daemon tools と言っても、仮想CDではありませんよ。(^^;)
現在、このサーバーは、inetd 経由でtelnetサーバーを動かしています。inetdは、こういう手のサーバーソフトを動かすため、いわば受付に当たるソフトです。
(先に設定した iptables が門の守衛さんだとすれば、inetd は、入り口の受付嬢といった感じでしょうか。)
・・・しかし!
この inetd はさまざまな弱点が指摘されています。
そこで、より強固な daemon tools に乗り換えようというわけです。また、この先に導入予定のDNSキャッシュやqmailなどは、inetdではなにかと問題があるので、ここで一気にdaemon toolsを導入しておこうというわけです。
(djbのツールはなにかとややこしいと言われていますが、パターンさえ解れば、かえって楽ですよ。)
インストール
入手と簡単な説明はこちらから。
では、さっそく手順に従って、インストールを開始します。
# cd / # mkdir -p package # chmod 1755 /package # cd /package/ # lftp ftp://ftp.jp.qmail.org/qmail cd 成功、cwd=/qmail lftp ftp.jp.qmail.org:/qmail> get daemontools-0.76.tar.gz 36975 バイト転送済、2 秒経過 (18.8KB/s) lftp ftp.jp.qmail.org:/qmail>quit # ls daemontools-0.76.tar.gz # tar xzvf daemontools-0.76.tar.gz ・ ・ ・ # ls admin/ daemontools-0.76.tar.gz #
まずはご覧のように、/package を作って、そこにdaemontoolsをダウンロードしてきます。そして、解凍をしておきます。
そして、コンパイルしなくてはいけないのですが、例によって開発ツールがなにも入っていませんので、導入しておきます。
# mount /usr -o remount,rw # apt-get install make # apt-get install gcc パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 以下の追加パッケージがインストールされます: binutils gcc-cpp glibc-devel kernel-headers 以下のパッケージが新たにインストールされます: binutils gcc gcc-cpp glibc-devel kernel-headers アップグレード: 0 個, 新規インストール: 5 個, 削除: 0 個, 保留: 0 個 0B/15.1MB のアーカイブを取得する必要があります。 展開後に 47.0MB のディスク容量が追加消費されます。 続行しますか? [Y/n] Y ・ ・ ・ #
さて、コンパイルするのですが、一点だけ問題があります。このツールはチョット古い時代に書かれたものなので、glibcが最新版であるVineではちょっと問題が起きます。
そこで、/package/admin/daemontools-0.76/src/error.h の最初のほう。 extern int errno; という行を修正します。
#ifndef ERROR_H #define ERROR_H /*extern int errno;*/ #include <errno.h> extern int error_intr; extern int error_nomem; ・ ・ ・
さて、お待たせしました。それではコンパイル開始です。
# cd /package/admin/daemontools-0.76 # ./package/install
これでOK。(簡単でしょ?)
さあ、あとはリブートするだけ。
リブートすると、もうすでにdaemontoolsのサーバー管理部分である、 svscan が動いているはず。どれどれ?
# ps x ・ ・ ・ 475 ? S 0:00 /bin/sh /command/svscanboot 477 ? S 0:00 svscan /service 478 ? S 0:00 readproctitle service errors: ....................... ・ ・ ・ 530 pts/0 R 0:00 ps x #
ほら、なんか変なのが動いているでしょ。これが svscan。
ちなみに、「errors」って出ているけど、これは正常な状態だから気にしなくていい。
インストール
入手はこちらから。
解凍します。
# tar xzvf ucspi-tcp-0.88.tar.gz ・ ・ ・ #
さて、コンパイルするのですが、一点だけ問題があります。このツールはチョット古い時代に書かれたものなので、glibcが最新版であるVineではちょっと問題が起きます。
そこで、error.h の最初のほう。 extern int errno; という行を修正します。
#ifndef ERROR_H
#define ERROR_H
/*extern int errno;*/
#include <errno.h>
extern int error_intr; extern int error_nomem;
・ ・ ・
さて、お待たせ。コンパイルします。
# cd ucspi ucspi-tcp-0.88 # make
最後にインストールします。ちなみに、これらのツールは、 /usr/local 以下にインストールされますので、aptやrpmの管理とぶつかることはありませんので安心してください。
# make setup check ./install ./instcheck #
問題なくインストールすることができましたね。
後処理
例によって後処理。開発環境とdaemontoolsのアーカイバを削除しておこう。
# mount /usr -o remount,rw # apt-get remove gcc # apt-get remove glibc-devel # apt-get remove gcc-cpp # apt-get remove kernel-headers # apt-get remove binutils # apt-get remove make # rm /package/daemontools-0.76.tar.gz # rm /usr/src/ucspi-tcp-0.88 -Rf # rm /usr/src/ucspi-tcp-0.88.tar.gz # mount /usr -o remount,ro