長らくapacheのlogをFreeBSDでnewsyslogを使ってローテートしていたのだが、いまさら発見したネタをひとつ。
/etc/newsyslog.confには次のように書くらしい。
/var/log/access.log 644 12 * $M1D0 J /var/run/httpd.pid 30 /var/log/error.log 644 12 * $M1D0 J /var/run/httpd.pid 30
Apahce にログファイルが変更されたことを伝えるには SIGUSR1 というシグナルを送る必要があるそうなのだが、UNIX(POSIX) の SIGUSR1 の値が 30 番なのでその値を書くものらしい。
いやー知らんかったすわ。いままでシグナルの種類書いてなかった…
(2004/11/14)
ついでにPIDを記録しておくファイルの位置を変更したのだが、apachectl restartなどとしても失敗するようになった。
原因を調査したところ、apachectlにPID fileの場所が書いてあり、PIDFILE=/var/run/httpd.pidと書き換えが必要らしい。
一瞬あわてました。
わーい。ちょうどさばのろぐがでかくなったのでたすかりました。
それはなによりです。
僕は久しぶりにログをローテートさせたら、bzipプロセスが大忙しでした。