我目前正在使用qsub运行多个Java可执行程序。
我写了两个脚本:1)qsub.sh, 2) run.sh
qsub.sh
#! /bin/bash
echo cd `pwd` ; "$@" | qsub
run.sh
#! /bin/bash
for param in 1 2 3
do
./qsub.sh java -jar myProgram.jar -param ${param}
done
根据上面的两个脚本,我通过
提交作业sh run.sh
我想重定向由myProgram.jar -param ${param}生成的消息
所以在run.sh中,我用下面的 替换了第4行./qsub.sh java -jar myProgram.jar -param ${param} > output-${param}.txt
但是output.txt中存储的消息是"Your job 730 ("STDIN")已提交",这不是我想要的。
我知道qsub有一个选项-o用于指定输出的位置,但是我不知道如何在我的情况下使用这个选项。
有人能帮我吗?
问题是qsub不返回作业的输出,它返回qsub命令本身的输出,这只是通知您的资源管理器/调度器您希望运行该作业。
您希望使用qsub -o选项,但是您需要记住,在作业运行完成之前,输出不会出现在那里。对于Torque,您可以使用qstat来检查作业的状态,所有其他资源管理器/调度器都有类似的命令。