0 レビュー
3 回答
macos-PHPスクリプトはバックグラウンドで実行されません
バックグラウンドでphpCLIスクリプトを実行しようとしていますが、実行されません-ステータスはStopped SIGTOU(出力を書き込もうとしています)-詳細は次のとおりです
- Mac OS X Lion 10.7.2
- PHP 5.3.6 with Suhosin-Patch(cli)(作成日:2011年9月8日19:34:00)
基本的なスクリプトtest.phpを作成しました
<?php echo 'Hello world'.PHP_EOL; ?>
さまざまなテストの結果は次のとおりです。-
php -f test.php (Hello worldが表示されます)
php -f test.php> test.log 2>&1 (Hello worldはtest.logに入れられます)
php -f test.php> test.log 2>&1& ---
[1] + Stopped(SIGTTOU)php -f test.php>test.logを取得します2>&1 -そして、ジョブはそこにとどまり、何もログに記録されませんが、lsofはログファイルが開いていることを示します
PHPと関係がありますか?同様のシェルスクリプトがバックグラウンドで問題なく実行されます。
わからない
0
レビュー
答え :
解決策:
phpのビルドでreadlineが有効になっている場合は、入力として/ dev/nullを渡すだけです。
上記の例では、次のようになります。
php -f test.php </dev/null >test.log 2>&1
わからない
0
レビュー
答え :
解決策:
これは解決されました。回答してくれたすべての人に感謝します。問題は、AppleがOSで事前に構築されたPHPを提供していることでした-CLIバージョンはreadlineが含まれて構築されています- http ://www.php.net/manual/en/intro.readline.php ...これにより、readlineがTTYでIOを自動的に開始するため、スクリプトのバックグラウンド実行が防止されます...
私の問題は、このために自分のバージョンのPHPをビルドできないことでした-> http:// forums.macrumors.com/showthread.php?t=1284479 -それが解決されると、バックグラウンドスクリプトの問題はなくなりました:)
わからない
0
レビュー
答え :
解決策:
PHPスクリプトは実行が完了すると停止します。つまり、文字列を出力するとすぐに単純なエコー「HelloWorld」の実行が完了します。何かすることがあると思います。それで;-)
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。