2

我正在使用LSF bsub命令在 Unix 环境中提交作业。但是,LSF 作业正在等待子作业完成。

这是一个示例(有关以下示例脚本的详细信息):

  1. 没有 LSF:如果我parent.ksh在 Unix 中提交而不使用LSF,即在命令提示符中键入./parent.ksh,则parent.ksh提交 get 并在一秒钟内完成,而无需等待子作业script1.kshscript2.ksh因为这些作业已在后台模式下提交。这是 Unix 中的典型行为。
  2. 使用 LSF:但是,如果我提交我的parent.ksh使用LSF,即bsub parent.ksh,在提交后parent.ksh等待 180 秒(这是 2 号孩子所用的最长时间,即 script2.ksh)。请注意,我已排除处于待处理状态的工作所花费的时间。

这是我没想到的,我如何确保不会发生这种情况?

我已经检查过,script1.ksh并且script2.ksh在这两种情况下都被调用了。

父.ksh:

#!/bin/ksh<br>
/abc/def/script1.ksh &<br>
/abc/def/script1.ksh &<br><br>

脚本1.ksh:

#!/bin/ksh<br>
sleep 80<br><br>

脚本2.ksh:

#!/bin/ksh<br>
sleep 180
4

1 回答 1

1

我猜原因是 LSF 跟踪您的作业的进程树,因此 LSF 作业仅在这两个后台进程退出之前完成。所以你可以尝试在新会话下为后台进程创建一个新的进程组。

于 2019-02-28T18:43:34.120 回答