[PHP-users 34779] Re: sleep関数が復帰せずプロセスがダウンする

Yuji KUBOTA kubota.yuji @ forestgroup.net
2009年 9月 18日 (金) 11:57:04 JST


前田さま

この度はお世話になります。久保田と申します。

コメントを頂き感謝申し上げます。

>  前田です。
> 
>  同じ環境を作れないので、確認できないのですが、Apache自身の
> workerプロセスが終了するときに、シグナルが飛んできて一緒に
> 終了しているのでは無いですか?
そんな動きをしているのですね。勉強になりました。
Apacheの動きをもっと理解しないと行けないと痛感。

>  MaxRequestsPerChild の設定に依存しますが、デフォルト値は
> 10000となっており、10000リクエスト毎にサーバープロセスは
> 終了します。
MaxRequestsPerChildの値が0となっておりました。
と言う事は、今回のケースに関してはMaxRequestsPerChildの設定に関係ないと言う事で
すね。
追加情報ですが、何度か試験を繰り返すと同じ時刻(0:10)にプロセスがダウンしており
ました。
Apacheが定期的に何かを行っている事が怪しいと理解できます。
その点をつめてみたいと思います。

>  pcntl_signalで、シグナルハンドラ設定してログを書かせてみれば
> 判断できると思います。
> 
>  飛んでくるシグナルを無視することで、プロセスが終了することは
> なくなりますが、もし、子プロセスが長期間待機する性質のもので
> あれば、CLI等で作ったデーモンプロセスを用意するほうがベター
> だと思います。
>  複数の異なるかも知れない親からforkされるプロセス群を安全に
> 管理するのは大変だからです。
>
>  シグナルを無視するようにしたとして、Apache自体を再起動した
> 際に、各々の子プロセスの後始末をきれいにやったり、安全な排他
> 処理を用意したりするのは気を使います。
他の方のコメントも含めて検討します。



PHP-users メーリングリストの案内