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

kinosita kino @ deneb.jp
2003年 4月 14日 (月) 16:21:53 JST


こんにちは。木下というものです。

三島さん、レスありがとうございます。
 
> 三嶋です。
> >  今回の疑問点は、シェルの制御が終わっている(SHELL_END,</html>が表示さ
れ、
> >     終わっているように見える)にも関わらず、PHP側の制御が終わらない点で
す。
>
> http://www.php.net/manual/ja/function.system.php
> に、
> 「注意 この関数を使用してプログラム実行を開始し、バックグラウンドで実
> 行 したままにしたい場合には、プログラムの出力をファイルまたは他の出力
> ストリームにリダイレクトする必要があることにも注意して下さい。 さもな
> いと、PHPはそのプログラムの実行が終了するまでハングします。 」
>
> と書かれています。
>
> 仮に
>
>  system( '/tmp/a.sh > /dev/null' );

 やってはみましたが、ダメでした。PHP側の制御はおわりません。

bash-2.03# ps -aef | grep nobody | grep find
  nobody 14123     1  6 16:13:54 ?        0:02 /bin/find / -type f -print

  バックグラウンドで、稼動しているプロセスをroot権限で、kill すると、
瞬時に制御が戻ってきました。

 この程度のこと( CGI+perl ならば経験あったので)は、OSやPHPのバージョンに
依存しないだろうと思い、最初にはかかなかったのですが、環境は以下のとおりで
す。

OS: SunOS icsdditw1 5.8 Generic_108528-18 sun4u

PHP: 4.3.0




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