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

kinosita kino @ deneb.jp
2003年 4月 14日 (月) 15:48:10 JST


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

高柳さん、レスありがとうございます。

> 高柳です。
>
> > /usr/bin/nohup /bin/find / -type f -print > /dev/null &    #長時間かかる
処理
>
> はずしてるかもしれませんが、標準出力だけでなく、エラー出力も一緒に
> リダイレクトしてみてはいかがでしょう?
> ちなみに、当方の環境で試してみましたが
> > IEのステータスバー(下側のバー)にて、
> > .../test.php を開いています… と出力されます。
> っていうのはそのままのコードでも起こりませんでした。


(1) 上記の部分を以下に書き直してみましたが、結果は変わらずでした。
/usr/bin/nohup /bin/find / -type f -print &> /dev/null &

(2) この行をコメントアウトすると、結果は瞬時に返ってきて
 .../test.php を開いています… とは表示されません。

 シェル単体を動かすと、普通に稼動します。
 今回は、テスト用に時間がかかりそうなfind コマンドを使っています。
==================================================
● shell 側スクリプト
#!/bin/bash

echo "SHELL_START<BR>"
/usr/bin/nohup /bin/find / -type f -print > /dev/null &    #長時間かかる処理
echo "SHELL_END<BR>"
exit;
==================================================

 今回の疑問点は、シェルの制御が終わっている(SHELL_END,</html>が表示され、
    終わっているように見える)にも関わらず、PHP側の制御が終わらない点です。



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