2009年9月21日

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

二川さま

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

> 二川と申します。
> 親プロセスの停止・リスタート時の挙動は、OSの仕様に係らず
> 当然ながら各プログラムの実装が優先します。
> apacheの場合、コンフィギュレーションの再読み込み等が行われる為、

> その内容を子プロセスに反映させる必要があることから、
> 一度子プロセスをkillする動作をする様です。
>
> 詳しくは以下を参照ください。
>
> http://httpd.apache.org/docs/2.0/ja/stopping.html
全ての疑問が解決しました。ありがとうございました。

> Yuji KUBOTA さんは書きました:
>> 皆様
>>
>> この度はお世話になっております。久保田と申します。
>>
>> PHPプログラムのプロセスがダウンする原因について、皆様より頂いたコメントおよび私
>> の方で再度調べた結果を以下にまとめました。
>> (常駐プログラムの実現方法に関しては、別途整理させて下さい)
>> まだ、疑問点が残っております。3項に示しましたので、コメントを頂けると助かります。
>>
>
>> 3.疑問点
>> Q1:UNIX系OSのプロセス管理では、親プロセスが先に死ぬと子プロセスはinitプロセス
>> の養子になるだけで、子プロセスも一緒に死なないと理解しております。
>>
>> [参考ホームページ]
>> http://japan.zdnet.com/reference/solaris/story/0,3800077752,20365855,00.htm
>>
>> と言う事は、今回のケースにおいて、Workerプロセスの再起動(一時的に死ぬ)によりプ
>> ロセス(プログラムA)はダウンする必要はないと考えます。
>> 現象と逆の結果になってしまいます。
>> また、プログラムXをtelnet端末(rootアカウント)から起動しtelnet端末ログアウト後
>> (親プロセスが死んだ状態)もプロセス(プログラムA)はダウンする事なく動作し続け
>> ております。
>> 理屈がもう一歩通らず、何かまだ理解が足りないようです。
>> なぜ、Workerプロセスの再起動で、子プロセスであるプロセス(プログラムA)がダウン
>> する必要があるのでしょうか。
>> HUPシグナルが伝搬される仕様(OSまたはPHP)なのでしょうか。
>> どなたか教えて頂けないでしょうか。
Apacheの仕様と言う事ですね。

>> Q2:HUPシグナルは00:02に送信されていて、プロセスダウンが00:10に発生しておりま
>> す。このタイムラグは何を意味するのでしょうか。
子プロセスを終了に時間がかかっていると言う事ですね。

>> Q3:HUPシグナルはPID 22377のhttpdに送信されております。しかし、ps結果では当該
>> プロセスの起動時間に変わりません。当該プロセスは再起動していないと言う事でしょうか。
>> root 22377 0.0 0.4 32452 15372 ? Ss Sep13 0:12 /usr/sbin/httpd
HUPシグナルでは、親プロセスは終了しないと言う事ですね。
_______________________________________________
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月21日 09:15
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/88765
トラックバック
コメント
コメントする




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