【问题标题】:php exec() not running via a cron jobphp exec() 未通过 cron 作业运行
【发布时间】:2016-05-27 06:07:26
【问题描述】:

我已经为此努力了好几个小时了。

我正在通过 cron 作业执行一个 php 脚本,除了 exec() 方法之外,脚本中的所有内容都可以正常工作。

<?php
    exec('gpio write 7 0');

    // Open the file to get existing content
    $current = file_get_contents('log.txt');

    // Append a new person to the file
    $current .= get_current_user().' - '.date('H').":".date('i')." - gpio write 7 0\n";

    // Write the contents back to the file
    file_put_contents($log, $current);
?>

如果我直接从终端执行 php 脚本,则它适用于 pi 用户和 root 用户。

cron 作业运行时写入log.txt 文件的数据对我来说看起来不错,这是一个示例:

root - 00:16 - gpio write 7 0
root - 00:17 - gpio write 7 0
root - 00:18 - gpio write 7 0
root - 00:19 - gpio write 7 0

我尝试为要执行的 php 文件提供 755777 权限,但没有成功。

这是我执行sudo crontab -e时的结果

*/1 * * * * /usr/bin/php /var/www/check_time.php

任何帮助将不胜感激。

提前致谢。

【问题讨论】:

    标签: php bash cron raspberry-pi gpio


    【解决方案1】:

    上线

    exec('gpio write 7 0);
    

    应该是

    exec('gpio write 7 0');
    

    ? ' 似乎从未关闭。

    【讨论】:

    • 不,那是我写这篇文章时的拼写错误。不过很好。我已经相应地更新了帖子。谢谢
    • 您在什么计算机/服务器操作系统上运行它?好像 php 没有执行脚本。在较新的 ubuntu 服务器上,您可以在 cron 脚本中使用 php 而不是 /usr/bin/php。他们中的一些人得到了挑剔的编辑——我看到你说你在 ras-pi 上运行它,试试看
    【解决方案2】:

    您应该具体说明 gpio 的路径并给出确切位置,以便 cron 知道在哪里可以找到它,/usr/local/bin 不是由 cron 导入的:

    /usr/local/bin/gpio
    

    那么它将是:

    exec('/usr/local/bin/gpio write 7 0);
    

    【讨论】:

      猜你喜欢
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 2018-05-13
      • 2015-01-11
      • 1970-01-01
      相关资源
      最近更新 更多