6

exec($ cmd、$ output、$ exitCode)を介してバックグラウンドで実行されるphpスクリプトの終了ステータスコードを取得する方法はありますか?

例えば:

exec('php script.php &', $output, $exitCode); 

末尾の「&」が含まれていない場合、$ exitCodeは期待どおりに機能し、それ以外の場合は常に0になります。

4

2 に答える 2

5

おそらくPradeepのソリューションとまったく同じものを見つけました。誰かがこれについて関数のドキュメントページに投稿しました。 http://www.php.net/manual/en/function.exec.php#101506

于 2010-12-30T18:00:08.507 に答える
5

ここにいる人にとって、私の解決策は、引数としてスクリプトを受け取るphpスクリプトを作成することでした。新しいスクリプトはバックグラウンドで呼び出され、終了ステータスを適切に処理します。

例えば:

$cmd = 'php asynchronous_script.php -p 1';
exec("php script_executor.php -c'$cmd' &");

2番目のスクリプトは次のようになります

$opts = getOpt('c:');
$cmd = rtrim($opts['c'], '&');
$exitCode = 0;
$output = '';

exec($cmd, $output, $exitCode);

if ($exitCode > 0) {
 ...
}
于 2010-12-30T21:25:34.007 に答える