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

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


Mashikiさま

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

>  Mashikiです。
> 
>>>> 定期的に処理を実行するプログラムをプロセスとして常駐化させ利用したと考えて
>>>> います。
>   :
>> 自己運営サーバーなので基本的にはサーバーに関する制限はなしです。
>> 開発環境としてPHPで統一しておきたいと言う理由です。
>>>> 常駐化なら、やはり常駐プロセスとしてプログラムを
>>> 作成するのが正攻法だと思います。
>> そのように見直すべきかとも考え始めております。
> 
>> それにしても、なぜプロセスがダウンするかの原因は明確にしておきたいと考えてい
>> ます。
> 
> 前田さんのapacheプロセスの終了が怪しそうですね。
> 
> apache経由でなく、コマンドラインから実行して再現しないのであれば、
> 
> --- Test_CreateSleepProc.php ---
> <?php
>    exec("echo 'php -f Test_Sleep.php > /dev/null' | at now");
> ?>
> 
> でいけそうな気がします。
上記コメントを検討させて頂きます。

> ところで、なぜ常駐させたいのか語られていないのですが、
> 自分だったら可能な限り常駐は避けます。
[PHP-users 34767]でもご説明させて頂いておりますが、定期的に処理を実行するプログ
ラムをプロセスとして常駐化させ利用したと考えたしだいです。
なた、開発言語としては
・システム全体としての統一性
・HTML、HTTP、MySQLが扱いやすいこと
を考慮し、PHPを利用したしだいです。

>  php自身、利用しているモジュールやライブラリ、自分で書いた
> プログラムのすべてについて、メモリリークがないことを保障するのは
> 難しいので、60回だけループして終了するようなプログラムにして、
> それをcronで10分置きに起動するとかを選択するでしょうね。
堀田さまからも同様のご指摘を頂いております。
[PHP-users 34774]
皆様から頂いたコメントを参考に、方式として再検討を行いたいと思います。

> ブラウザから開始/終了したいのであれば、apache側プログラムは
> 設定ファイルにフラグをセットするだけにするとか...。



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