在qsub下重定向我的java程序的输出

时间:2016-08-08 08:40:41

标签: pbs qsub sungridengine queueing

我目前正在使用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中的消息是"您的作业730(" STDIN")已经提交了#34; ,这不是我的意图。

我知道 qsub 有一个选项 -o 用于指定输出的位置,但我无法弄清楚如何在我的情况下使用此选项。

任何人都可以帮助我吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

问题是qsub不返回作业的输出,它返回qsub命令本身的输出,这只是通知您的资源管理器/调度程序您希望该作业运行。

您想使用qsub -o选项,但是您需要记住,在作业运行完成之前,输出不会出现。对于Torque,您可以使用qstat检查作业的状态,所有其他资源管理器/调度程序都有类似的命令。