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

Mashiki mashiki @ yanah.com
2009年 9月 18日 (金) 07:20:10 JST


 Mashikiです。

>>> 定期的に処理を実行するプログラムをプロセスとして常駐化させ利用したと考えて
>>> います。
  :
>自己運営サーバーなので基本的にはサーバーに関する制限はなしです。
>開発環境としてPHPで統一しておきたいと言う理由です。
  :
>> 常駐化なら、やはり常駐プロセスとしてプログラムを
>> 作成するのが正攻法だと思います。
>そのように見直すべきかとも考え始めております。

>それにしても、なぜプロセスがダウンするかの原因は明確にしておきたいと考えてい
>ます。

前田さんのapacheプロセスの終了が怪しそうですね。

apache経由でなく、コマンドラインから実行して再現しないのであれば、

--- Test_CreateSleepProc.php ---
<?php
   exec("echo 'php -f Test_Sleep.php > /dev/null' | at now");
?>

でいけそうな気がします。


ところで、なぜ常駐させたいのか語られていないのですが、
自分だったら可能な限り常駐は避けます。

 php自身、利用しているモジュールやライブラリ、自分で書いた
プログラムのすべてについて、メモリリークがないことを保障するのは
難しいので、60回だけループして終了するようなプログラムにして、
それをcronで10分置きに起動するとかを選択するでしょうね。

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


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