使用 PHP 脚本中的 AT 调度一次性事件不起作用



我需要使用 PHP 来调度任务,以便以后在本地机器上执行。我避免使用 cron,因为我不需要随着时间的推移重复任务。

我试过了

$msg="at 10am today
date > /path/path/date.txt
x04";
shell_exec($msg); // Nope
$msg="at 10am today
date > /path/path/date.txt
".chr(4);
shell_exec($msg); // Nope
$msg=<<<EOT
at 10am today
date > /path/path/date.txt
EOT;
shell_exec($msg); // Nope

shell_exec('echo "date > /some/path/date.txt" | at 10am today');

最后一行在终端中使用 php 执行脚本时有效,但在我的 Web 浏览器中转到脚本时不起作用(http://localhost/script.php )。我也试过system但没有成功。顺便说一句,echo shell_exec('ls /')工作没有问题,所以我认为这不是权限问题吗?有没有人知道出了什么问题?


背景信息:这样做的动机是我正在构建一个基于 Web 的界面,用于指定计算密集型模拟作业并将其提交到远程机器。我的PHP脚本从用户输入生成R和Matlab脚本,我可以很好地从PHP通过SSH连接到这些机器。我只是无法安排这些脚本稍后执行,独立于 SSH 会话。

正如您所建议的,探测器位于用户执行脚本的设备上。我认为经典的 www 数据不能在命令中使用

添加专用用户作为普通用户(adduser phpschedule);然后将在 apache 中执行 php 的用户从经典的 www-data 更改为 phpschedule

最新更新