パスワードを忘れた? アカウント作成
451162 journal

pasasの日記: qmail と logger

日記 by pasas

qmail を使ってメールサーバを運用している。
qmail にはログを保存するために splogger というプログラムがある。
これは qmail-send が出力したログを syslog に渡すという仕事をやっているようだ。

でも、syslog は重いという問題があるので、できれば使いたくない。
そんなわけで daemontools を使って qmail を起動し、multilog を使ってログを保存することを考えたけど、
daemontools は勝手にサービスを監視しているというのが余計なお世話だ。
というのも、今回は特定の時間帯だけ qmail-send を安全に止めておきたい。
qmail-send を安全に停止するには TERM シグナルを qmail-send に送ればよいんだけど、
svc を使って TERM シグナルを qmail-send に送ると、再起動してしまうのだ。

まぁ、そんなことも含めていろいろあるので、splogger を自作して syslog 使うことなく
ログを保存するプログラムを作った。
これならば splogger を置き換えるだけなので簡単だし、qmail をインストールできる人なら設定できる。
というわけで作ったプログラムは以下のような感じ。

#define LOG_FD 0

if( ( log_fp = fdopen( LOG_FD, "r")) == NULL ) {
    perror("fdopen");
    exi(-1);
}

while( fgets( buffer, sizeof( buffer), log_fp) != NULL ) {
    /* いろいろ */
}

ついでに HUP シグナルを送るとログを rotate するようにしておいた。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...