我希望这是一个非常简单的问题,但我对Sun Grid并不是很熟悉,所以我一直无法找到答案。我目前正在使用bash提交脚本向网格提交作业,该脚本生成命令然后执行它。我在网上看到,如果sun网格作业以99的代码退出,它将重新提交给网格。我已经成功编写了我的bash脚本来执行此操作:
[code to generate command, stores in $command]
$command
STATUS=$?
if [[ $STATUS -ne 0 ]]; then
exit 99
fi
exit 0
当我使用我知道具有非零退出状态的命令将此作业提交到网格时,该作业确实似乎重新提交,但是调度程序从不将其发送到另一个主机,而是它仍然停留在状态为“Rq”的队列:
job-ID prior name user state submit/start at queue slots ja-task-ID
-----------------------------------------------------------------------------------------------------------------
2150015 0.55500 GridJob.sh my_user Rq 04/08/2013 17:49:00 1
我觉得这在队列的配置选项中很简单,但我找不到任何谷歌搜索。我尝试使用qsub -r y
选项提交此作业,但这似乎没有改变任何内容。
谢谢!
答案 0 :(得分:1)
重新安排的作业只会在其rerun
属性(默认情况下为FALSE)设置为TRUE的队列中运行,因此请检查队列配置(qconf -mq myqueue
)。如果没有这个,你的工作将无限期地保持在重新安排的状态,因为它无处可去。
IIRC,提交qsub -r yes
的作业只会使他们在exec节点崩溃时自动重新安排,并且以状态99退出应该触发重新安排。