Unix LSF父作业正在等待子作业
我正在使用LSF bsub命令在Unix环境中提交作业。但是,LSF作业正在等待子作业完成 下面是一个示例(下面是有关示例脚本的详细信息):Unix LSF父作业正在等待子作业,unix,lsf,Unix,Lsf,我正在使用LSF bsub命令在Unix环境中提交作业。但是,LSF作业正在等待子作业完成 下面是一个示例(下面是有关示例脚本的详细信息): 无LSF:如果我在Unix中提交parent.ksh而不使用LSF,即在命令提示符下键入/parent.ksh,parent.kshget已提交并在一秒钟内完成,无需等待子作业script1.ksh和script2.ksh,因为这些作业已在后台模式下提交。这是Unix中的典型行为 使用LSF:但是,如果我使用LSF提交我的parent.ksh,即bsub
parent.ksh
而不使用LSF
,即在命令提示符下键入/parent.ksh
,parent.ksh
get已提交并在一秒钟内完成,无需等待子作业script1.ksh
和script2.ksh
,因为这些作业已在后台模式下提交。这是Unix中的典型行为LSF
提交我的parent.ksh
,即bsub parent.ksh
,parent.ksh
在提交后等待180秒(这是第2号孩子(即script2.ksh)所花费的最长时间)。请注意,我已经计算了处于待定状态的作业所花费的时间script1.ksh
和script2.ksh
在这两种情况下都被调用
parent.ksh:
#!/bin/ksh<br>
/abc/def/script1.ksh &<br>
/abc/def/script1.ksh &<br><br>
#!/bin/ksh<br>
sleep 80<br><br>
#!/bin/ksh<br>
sleep 180
#/bin/ksh
/abc/def/script1.ksh&
/abc/def/script1.ksh&
script1.ksh:
#!/bin/ksh<br>
/abc/def/script1.ksh &<br>
/abc/def/script1.ksh &<br><br>
#!/bin/ksh<br>
sleep 80<br><br>
#!/bin/ksh<br>
sleep 180
#/bin/ksh
睡眠80
script2.ksh:
#!/bin/ksh<br>
/abc/def/script1.ksh &<br>
/abc/def/script1.ksh &<br><br>
#!/bin/ksh<br>
sleep 80<br><br>
#!/bin/ksh<br>
sleep 180
#/bin/ksh
睡180
我猜原因是LSF跟踪作业的进程树,因此LSF作业只有在这两个后台进程退出后才能完成。因此,您可以尝试在新会话下为后台进程创建一个新进程组。您可以尝试bsub parent.ksh&并在此处共享结果吗?尝试bsub parent.ksh后的结果与此相同。我以前没有使用过LSF,但我怀疑LSF会对其创建的进程进行一些后台监视,因此会一直运行到所有进程都运行为止孩子们已经做完了。这很可能是预期的行为,但同样,我可能错了。批处理调度程序的全部目的是阻止用户执行您试图执行的操作。它的LSF的任务是跟踪执行主机上运行的内容,以便它能够准确地管理机器。如果您使用双fork和setsid(),则可能会愚弄LSF。但是,LSFv9.1将提供对cGroup的支持,AFAIK将弥补这一漏洞。