- - PR -
logrotate.dが実行されたあと
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-03-09 18:48
お世話になります。
logrotate.dにApache用のログローテーションの設定をしていますが、 これが実行されたあと、Apacheのrestartが行われているという認識であっているでしょうか。 その場合、httpのプロセスは切られずに、持続しているのでしょうか。 自分でrestartを行った場合は、httpのプロセスは切られずにDBなど検索中であっても表示されました。 宜しくお願い致します。 Red Hat Linux release 8.0 (Psyche) Kernel 2.4.18-14 on an i686 Apache/1.3.29 | ||||||||||||||||
|
投稿日時: 2005-03-09 21:17
こんばんわ.
/etc/logrotate.d/httpd を参照してみましょう. どのように処理されているかわかります. 「自分で」というのは # /etc/rc.d/init.d/httpd restart した場合のことでしょうか? ちなみにその場合, 上記の script を参照すると start stop しています. 以上,ご参考までに. | ||||||||||||||||
|
投稿日時: 2005-03-09 21:18
設定を見ないことには分かりません。 RedHat 8 のデフォルトでは再起動するようになっていたように記憶しています。
apachectl restart(HUPシグナルを送るのも同じ)では切断されます。 apachectl graceful だと切断されません。ただし、こちらを使った 場合にはログのロテートが瞬時には完了しません(てゆーか、 完了しないことを前提に処理するように設定を書かないとダメ)。 RedHat 8 のデフォルトではHUPシグナルを送っていたように 記憶しています。
restart というのが apachectl restart のことであれば、 切断されたはずです。 | ||||||||||||||||
|
投稿日時: 2005-03-10 10:30
kaz様、ぽんす様ありがとうございます。
/etc/logrotate.d/httpd は、 missingok notifempty sharedscripts postrotate /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true endscript となっています。 自分が行ったと書いたのは、 /usr/local/apache/bin/apachectl restart の実行です。 /etc/rc.d/init.d/httpd の方は、stop,startしているのがわかったのですが、 /usr/local/apache/bin/apachectl は、いまいち解読できませんでした。 (これからしらべます。。) やはり、DBへの接続のある検索画面を実行中に、 /usr/local/apache/bin/apachectl restart をしても、結果がちゃんと返ってくるので、維持していると思っているのですが、 違うのでしょうか。 HUPの意味がよくわからないので、これも調べてみます。 | ||||||||||||||||
|
投稿日時: 2005-03-10 13:23
apachectlを見てみました。
ちょっと手元で覗けるものに古いApacheしかなかったので、 1.3.28のものですがご容赦ください。
kill -0 でプロセスの生存確認を行い、その結果に応じて変数RUNNINGに状態を格納
ということで、apachectlを使用してもkill -HUPを行っているということになります。
実施前と実施後にプロセスリストを表示して(psコマンド等) PIDを比較すれば、わかると思います。
少なくともApacheの子プロセスは持続していないはずです。 | ||||||||||||||||
|
投稿日時: 2005-03-10 21:35
とりあえず、「apache のようなデーモン動作するプログラムは kill -HUP によって再起動するように書かれていることが多い」 とだけ知っておけばよいと思います。 なんでそうなのかというと、デーモンはふつう制御端末から 切り離されるのでSIGHUPが発生することはあり得ないから云々 とゆー話になって長くなるので... 興味があれば『詳解UNIXプログラミング』を読んで下さい。 | ||||||||||||||||
|
投稿日時: 2005-03-11 02:05
Uta様、ぽんす様
ありがとうございます。 実行前と実行後で、psのPIDとserver_statusのPIDを参考に監視したところ、 実行中だったPIDは新しいPIDにて動いていました。 それで結果は返ってきていたのですね。 いろいろと教えていただき、ありがとうございました。 |
1