2009年9月17日

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

 前田です。

 同じ環境を作れないので、確認できないのですが、Apache自身の
workerプロセスが終了するときに、シグナルが飛んできて一緒に
終了しているのでは無いですか?
 MaxRequestsPerChild の設定に依存しますが、デフォルト値は
10000となっており、10000リクエスト毎にサーバープロセスは
終了します。

 pcntl_signalで、シグナルハンドラ設定してログを書かせてみれば
判断できると思います。

 飛んでくるシグナルを無視することで、プロセスが終了することは
なくなりますが、もし、子プロセスが長期間待機する性質のもので
あれば、CLI等で作ったデーモンプロセスを用意するほうがベター
だと思います。
 複数の異なるかも知れない親からforkされるプロセス群を安全に
管理するのは大変だからです。

 シグナルを無視するようにしたとして、Apache自体を再起動した
際に、各々の子プロセスの後始末をきれいにやったり、安全な排他
処理を用意したりするのは気を使います。

--
MAEDA 'kei' Katsuyukii <maeda.katsuyuki@xxxxx>
「終わらないプロジェクトはない。終わっちゃうプロジェクトはあるけど。」
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2009年9月17日 13:35
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/88647
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。