这是在Ubuntu系统上。当用户向我们的网站提交作业时,我想将其作为批处理作业运行。 Cmd.sh是一个shell脚本。在终端中手动运行时,脚本执行正常,但由于某种原因不会作为批处理作业运行。目前的PHP是:
system("echo /var/www/dbCAN/data/blast/$jobid/cmd.sh | batch");
它不会打印错误或崩溃,它只是不提交作业。此外,如果我将此代码更改为仅删除“| batch”,则文件将正常执行。我不想直接执行它的原因是它是一个需要一些时间的密集过程,我们通常在作业完成时通过电子邮件发送给用户(而不是一次运行多个作业)。任何人都有任何想法为什么这不起作用?我知道路径是正确的,但我不确定批次使用情况。感谢帮助:)
答案 0 :(得分:0)
来自man batch
:
对于 和批次,可以从标准输入读取命令或 使用 -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