PHPのバックグラウンドプロセスを支援するために次のWebサイトを使用しています-http://nsaunders.wordpress.com/2007/01/12/running-a-background-process-in-php/
私のコードは基本的に同じですが、私のshell_exec
メソッドは次のようになっています-
nohup php -f /my/path/to/import_products.php 2 > /dev/null 2> /dev/null & echo $!
実行しているPHPスクリプトは問題なく実行され、製品がインポートされますが、を1つだけに追加するsleep(10)
とimport_products.php
、while(is_process_running($ps))
ループが1回だけ終了します。
コマンドのshell_exec
実行は、(から)10秒待つのではなく、すぐに完了しているようsleep(10)
です。
なぜこれが起こるのか、何か考えはありますか?
編集
私の質問は本当に「PHPスクリプトがpsに表示されなくなる前に、プロセスが終了するのを待っていないのはなぜですか?」ということだと思います。-確かに、PHPスクリプトが10秒間スリープしているので、ps $pid
そのプロセスを最低10秒間表示する必要がありますか?