[PHP-users 14646]Re: PHPから、長時間かかる処理をバックグラウンドで呼びたい

kinosita kino @ deneb.jp
2003年 4月 14日 (月) 17:23:44 JST


こんにちは。木下というものです。山本さん、貴重な情報ありがとうございます。

> サイボウズの山本と申します。
>
> 推測になりますが、SunONEでは子プロセス(CGI)の
> 終了待ちに waitpid でプロセスグループごと待って
> いたりするのではないでしょうか。
> とかしていて。そうするとシェルでは子プロセスの
> プロセスグループを変更できないので回避は辛いですね。

 Apache は、過去に何度も扱っているのですが、SunONEは今回初めてでして、
 こういった情報をいただけると助かります。

> kinosita wrote:
> >   高柳さんのところで、問題なく動いたと言うことであれば、考えづらいです
が、
> >  環境依存でしょうか?
> >  (WEBサーバーに、SunONE というものを使っているらしく、多少、身に覚えが
あり
> > ます)

 結論としては、通常の環境(=高柳さんの環境=Apache+PHP?) などでは、

> http://www.php.net/manual/ja/function.system.php
> に、
> 「注意 この関数を使用してプログラム実行を開始し、バックグラウンドで実
> 行 したままにしたい場合には、プログラムの出力をファイルまたは他の出力
> ストリームにリダイレクトする必要があることにも注意して下さい。 さもな
> いと、PHPはそのプログラムの実行が終了するまでハングします。 」

  に気をつけながら、PHPのsystem() + OSのnohup で処理すると、
 長時間の処理はハングせずに終わるが、WEBサーバーがSunONE だと、
 ハングする問題をクリアするのは困難。

===============================================================

 SunONE を調べて、山本さんのいうことが正しかったら、素直に諦めて、
 DBにコマンドを登録+cron で実行で逃げることにします。

   今回、レスをくださった方々、少しでも考えてくれた方々ありがとうございまし
た。


 



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