如何获得SGE工作状态

时间:2016-10-31 18:06:48

标签: cluster-computing sungridengine

这可能是一个非常简单的问题,但如果我有工作ID,我如何获得通过SGE提交的工作状态?我基本上想检查一个工作ID,看看它是否处于错误状态,它是否仍然在运行,或者它已经完成。

我在想这样的事情

qstat -j '123456'

但是如果作业ID很低,它可能会返回除我想要的行以外的行。并使用这样的命令...

{{1}}

...似乎没有返回工作状态。

3 个答案:

答案 0 :(得分:1)

发出命令:

qstat -xml

结果将采用XML格式。您可以解析结果并提取状态:

<job_list state="pending">
  <JB_job_number>3150728</JB_job_number>
  <JAT_prio>0.00000</JAT_prio>
  <JB_name>snpReference</JB_name>
  <JB_owner>me</JB_owner>
  <state>hqw</state>
  <JB_submission_time>2016-11-23T11:54:01</JB_submission_time>
  <queue_name></queue_name>
  <jclass_name></jclass_name>
  <slots>1</slots>
</job_list>

答案 1 :(得分:0)

我已迁移到Torque / Maui,因此GridEngine的解决方案可能不准确。

使用qstatgrep尝试使用基于字词的搜索:

qstat -u '*' | grep -w 123456

或者,使用awk

qstat -u '*' | awk '$1 == 123456 { print }'

对于Toque / Maui,我可以使用qstat -f $jobid获取作业状态:

qstat -f 123456 | grep job_state

也许您可以使用-j选项执行类似操作:

qstat -j $job_id | grep job_state

答案 2 :(得分:0)

让你的正则表达式更具体:

qstat | grep "^123456\s"

这样你只会获得整个工作号码是你指定的工作。