exec()函数在cron中工作但不是手动的

时间:2015-11-26 14:57:51

标签: php linux exec

我正在使用Raspberry Pi和网络服务器控制家庭自动化。我用这条线打开我的灯(将RC信号发送到无线电源插座)。

exec("sudo ./../../../home/pi/wiringPi/examples/lights/action 63 A on");

当脚本由cron作业运行时,这是有效的,但是当我手动想要执行此命令(使用php表单和按钮)时,它不起作用。我尝试添加$output, $return);并检查$return,这确认了exec()函数没有被执行。但是,当我使用exec("whoami");之类的东西时,脚本就会被执行。

我的命令是什么让它只能用于cron作业?我有这个工作一次,不知道发生了什么。在终端中通过ssh手动发送命令正常工作。

1 个答案:

答案 0 :(得分:1)

修复此命令的权限并在没有sudo的情况下运行它(对于ubuntu默认php用户是www-data,对于suse wwwrun,...)。 检查路径。我推荐绝对路径。