年末なのでたまには技術的な話を書いておこう。
apacheのrestartを正しく理解していますか?
Linuxの/etc/init.d/httpdを読むと、restartがstop,startになっていたりするので、restartをstop,startだと思っている人は多いと思う。ではhttpd.confのServerLimitを増やしたときに、restartでは有効にならず、stop,startが必要になるのはなぜか?
apacheというWEBサーバはゴテゴテとして美しさを感じない。sendmailやbindのような汚さを感じる。
てな、話はどうでもよく。
apachectl -k restartの動きは親プロセスを再起動しない。これがポイント。
すなわち初期化ルーチンでリソースを確保したり、設定したりする部分はrestartではダメで、stop,startする必要があるということ。
仕事で人に聞かれたので答えてみた。
昔は、そんなもん(apacheの)ソース読んで考えろ、と言うたもんだが、歳とると人は優しくなるのね。
最近は自分が使うプログラムのソースを読まないヤツラが増えたよな。
あたしのようなカーネルやドライバを専門にする堅物プログラマは過去の人なんですよね。
apacheのrestartを正しく理解していますか?
Linuxの/etc/init.d/httpdを読むと、restartがstop,startになっていたりするので、restartをstop,startだと思っている人は多いと思う。ではhttpd.confのServerLimitを増やしたときに、restartでは有効にならず、stop,startが必要になるのはなぜか?
apacheというWEBサーバはゴテゴテとして美しさを感じない。sendmailやbindのような汚さを感じる。
てな、話はどうでもよく。
apachectl -k restartの動きは親プロセスを再起動しない。これがポイント。
すなわち初期化ルーチンでリソースを確保したり、設定したりする部分はrestartではダメで、stop,startする必要があるということ。
仕事で人に聞かれたので答えてみた。
昔は、そんなもん(apacheの)ソース読んで考えろ、と言うたもんだが、歳とると人は優しくなるのね。
最近は自分が使うプログラムのソースを読まないヤツラが増えたよな。
あたしのようなカーネルやドライバを専門にする堅物プログラマは過去の人なんですよね。