无论如何通过exec($cmd,$output,$exitCode)获取在后台运行的php脚本的退出状态代码?
例如:
exec('php script.php &', $output, $exitCode);
如果不包含尾随的 '&' 则 $exitCode 按预期工作,否则它始终为 0。
对于发现自己在这里的任何人,我的解决方案是制作一个将脚本作为参数的 php 脚本。新脚本被调用到后台并适当地处理退出状态。
例如:
$cmd = 'php asynchronous_script.php -p 1';
exec("php script_executor.php -c'$cmd' &");
第二个脚本看起来像
$opts = getOpt('c:');
$cmd = rtrim($opts['c'], '&');
$exitCode = 0;
$output = '';
exec($cmd, $output, $exitCode);
if ($exitCode > 0) {
...
}
我发现了一些可能与 Pradeep 的解决方案相当的东西。有人在函数的文档页面上发布了这个。 http://www.php.net/manual/en/function.exec.php#101506