我们有一个脚本(生成器)来创建一系列at
作业。这些at
作业会触发另一个 PHP 脚本。生成器脚本循环并执行如下操作:
exec('/usr/bin/at 5:00 May 11, 2015 -f ' . $filename);
$filename 看起来像这样:
php /some-location/some-script.php arg1 arg2 arg3
它工作得很棒,我们喜欢它。我想要弄清楚的是如何在/var/spool/at/filename
生成器脚本运行时获取作业 ID 和文件名,以便我可以存储它,以防我们需要在安排后更改/取消。
有谁知道我如何从exec()
创建at
工作的人那里获取该信息?
答案1
根据 PHP 的文档执行():
如果存在输出参数,则指定的数组将填充命令输出的每一行。
您的版本是否at
声明了职位编号?
$ echo /bin/true | at now + 1hour
job 1 at Fri Apr 24 12:00:00 2015
如果是这样,您可能会使用爆炸()使用空格分隔符来获取作业编号。
<?php
// Remember to redirect stderr to stdout with "2>&1"
$command = "echo /bin/true | at now + 1hour 2>&1";
$at_message = explode(" ", exec($command, $output, $return_value));
$job_number = $at_message[1];
echo $job_number;
?>