我使用CakePHP 2.x创建一个Shell任务,我想通过Controller执行它。因此,我创建了一个在cli上执行命令以运行Shell Task的函数。这是我的文件:
// I want to launch it in background task
$pid = exec(APP . 'Console/cake {myCommand} {myTask} {argument} >/dev/null 2>&1 & echo $!', $output, $return_var);
debug($pid);
debug($output);
debug($return_var);
它呈现:
// line xx
''
// line xx
array()
// line xx
(int) 127
我尝试只启动cake
命令,如下所示:
$pid = exec(APP . 'Console/cake', $output, $return_var);
我得到了同样的结果。似乎shell没有找到完整的路径,但它很奇怪,因为它是正确的路径。我在我的机器上进行了开发测试,效果很好。
你有什么想法可以来自吗?
由于
答案 0 :(得分:0)
172是你想象的实际含义,见http://tldp.org/LDP/abs/html/exitcodes.html
但这很奇怪,因为它是正确的道路
老实说,我怀疑这个系统在说谎。因此,请检查目标计算机上的路径,而不仅仅是在开发环境中。
同时检查是否允许执行脚本的用户这样做。 Linux权限可以很有趣。您可以尝试为cake
文件设置777,并确保它也是可执行文件。