LSF bsub等待变量

时间:2015-03-06 15:34:35

标签: bash dependency-injection wait jobs lsf

我有一个问题要求job1在LSF中动态地使用变量名等待job2,这是我的代码

#!/bin/bash

JOB1=first
JOB2=second

bsub -I -q reg -J $JOB1 "ls /bin*" &
bsub -I -q reg -w 'done("$JOB1")' -J $JOB2 ls /usr/ &"

1 个答案:

答案 0 :(得分:1)

几个猜测。

  1. bash不会扩展单引号内的变量。你可能意味着这个

    bsub -I -q reg -w "done($JOB1)" -J $JOB2 "ls /usr/ &"
    
  2. 提交第二份工作时,LSF可能不知道第一份工作。由于第一个bsub是在后台运行的,所以bsubs" race"彼此。它可能是第二个bsub在第一个之前与mbatchd对话。 strace表明这是可能的。

    [pid  8413] 18:48:30.533859 execve(".../bsub", ["bsub", "-I", "-J", "first", "ls /bin/*"], [/* 45 vars */] <unfinished ...>
    [pid  8414] 18:48:30.534415 execve(".../bsub", ["bsub", "-I", "-w", "done(first)", "-J", "second", "ls /usr/ &"], [/* 45 vars */] <unfinished ...>
    ...
    [pid  8414] 18:48:30.572521 connect(5, {sa_family=AF_INET, sin_port=htons(6881), sin_addr=inet_addr("a.b.c.d")}, 16 <unfinished ...>
    [pid  8413] 18:48:30.573422 connect(5, {sa_family=AF_INET, sin_port=htons(6881), sin_addr=inet_addr("a.b.c.d")}, 16 <unfinished ...>