我有一个 BASH 脚本,可以将多个串行作业提交到 PBS 排队系统。提交作业后,脚本结束。然后这些作业在集群上运行,当它们全部完成后,我可以继续下一步。典型的工作流程可能涉及其中的几个步骤。
我的问题:
有没有办法让我的脚本在提交完成后不退出,而是休眠直到该脚本提交的所有作业在集群上完成,然后才退出?
最佳答案
您正在尝试建立工作流程,对吗?做你想完成的事情的最好方法是使用 job dependencies .本质上,您要做的是提交 X 个作业,然后提交更多依赖于第一组作业的作业,您可以使用作业依赖项来完成此操作。您可以在上一个链接中了解执行依赖关系的不同方法,但这是提交 3 个作业然后再提交 3 个直到前 3 个作业退出后才会执行的示例。
#first batch
jobid1=`qsub ...`
jobid2=`qsub ...`
jobid3=`qsub ...`
#next batch
depend_str="-W after:${jobid1} -W after:${jobid2} -W after:${jobid3}"
qsub ... $depend_str
qsub ... $depend_str
qsub ... $depend_str
关于bash - 如何知道 PBS 批处理作业何时完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25674240/