2013-04-09 72 views
1

我有我希望的一个非常简单的问题,但我对Sun Grid并不是很熟悉,所以我一直无法找到答案。我目前使用bash提交脚本将作业提交给网格,该脚本生成一个命令并执行它。我已经在网上阅读过,如果一个太阳网格作业以99的代码退出,它将被重新提交给网格。我已经成功地写我的bash脚本来做到这一点:Sun Grid Engine重新提交作业卡在'Rq'状态

[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 

我有一种感觉,这东西在队列的配置选项简单,但我一直没能找到任何Google搜索。我试过用qsub -r y选项提交这个工作,但这似乎没有改变任何东西。

谢谢!

+0

Rq国家代表什么? – user3138373 2015-10-05 22:24:33

回答

1

重新调度的作业只会在其rerun属性(默认为FALSE)设置为TRUE的队列中运行,因此请检查您的队列配置(qconf -mq myqueue)。没有这个,你的工作就会无限期地停留在重新安排的待决状态,因为它无处可去。

IIRC,提交作业qsub -r yes仅限于在执行节点崩溃时自动重新调度,而以99状态退出时应该触发重新调度。