我没有找到我要找的东西,所以,我在这里。
我尝试使用“at” unix 命令将 script.php 执行延迟到“现在 + 1 分钟”,同时保留 sudo 权限
我的问题是这个由“at”执行的 script.php 没有创建/编辑/删除文件或目录的权限,也没有运行我创建的 script.sh 的权限。
我尝试了许多不同的方法并得出了结论:
<?php
exex("echo password | sudo -u username -S echo 'echo password | sudo -u username -S php ".dirname(__FILE__).'/script.php '.$this->getQueueParams()."' | at now + 1 minutes");
当我在终端中复制/粘贴它时,此命令运行良好,但不是来自 PHP:
- 有时它有效,但由于权利原因触发了异常
- 有时它根本不执行“at”命令,en exec() 返回代码“1”
我还编辑了 suoders 以添加 apache 用户(www-data)执行我需要的所有命令(echo、chmod、chown、script.sh、...)的权限,但仍然无法正常工作。
非常感谢您的帮助!
杰西