在PHP系统命令中批处理

时间:2012-10-24 18:46:50

标签: php ubuntu batch-file jobs

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

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

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

1 个答案:

答案 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

参考:#419547 - at: batch no longer accepts parameters