[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 メーリングリストの案内

AltStyle によって変換されたページ (->オリジナル) /