似乎php exec不等待执行

时间:2013-03-06 18:57:50

标签: php exec executable shell-exec

这就是事情,

$file="myjpg.jpg";
$runme="/var/www/html/facedetect/facedetect ".$file;
$output=shell_exec($runme);
var_dump($output);

NULL

但实际上,通过ssh运行的完全相同的命令需要一段时间才能完成,大约15秒,它确实会返回输出。

所以我认为PHP没有等待并在完成之前退出。

可以采取哪些措施来解决这个问题?在ini的任何特殊设置。

或者是否存在可能与shell_exec相关的错过配置,而不是将myjpg.jpg作为可执行文件的参数发送。我对此毫无头绪。

1 个答案:

答案 0 :(得分:2)

当命令失败时,

shell_exec()返回NULL;即当它返回非零退出值时。

很可能是这种情况。

要进行调试,请尝试exec(),它始终返回一个值,它将返回错误。

我的直觉是运行PHP的用户(可能是www-data)无法访问/var/www/html/facedetect/facedetect$file;