-1

这是在 Ubuntu 系统上。当用户向我们的网站提交作业时,我想将其作为批处理作业运行。Cmd.sh 是一个 shell 脚本。在终端中手动运行时,脚本执行良好,但由于某种原因不会作为批处理作业运行。当前的PHP是:

system("echo /var/www/dbCAN/data/blast/$jobid/cmd.sh | batch");

它不会打印错误或崩溃,它只是不提交作业。此外,如果我将此代码更改为仅删除“|批处理”,则文件将正常执行。我不想直接执行它的原因是它是一个密集的过程,可能需要一些时间,我们通常会在用户的工作完成时向他们发送电子邮件(而不是一次运行多个工作)。任何人都知道为什么这不起作用?我知道路径是正确的,但我不确定批量使用。帮助表示赞赏:)

4

1 回答 1

0

来自man batch

对于 atbatch ,从标准输入或使用-f选项指定的文件读取命令并执行。

所以也许试试batch -f /var/www/dbCAN/data/blast/$jobid/cmd.sh

显然,batch不再支持参数(batch accepts no parameters当我尝试使用-f参数运行它时得到了)。以下对我来说等效(显然使用不同的文件路径):

at -q b -m now -f /var/www/dbCAN/data/blast/$jobid/cmd.sh

参考:#419547 - at: batch 不再接受参数

于 2012-10-24T19:09:11.023 回答