LSF bsub ждет с переменной
У меня есть проблема, чтобы сказать, что job1 должен динамически ждать job2 с именем переменной в LSF, вот мой код
#!/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 ответ
Пара догадок.
bash
не будет раскрывать переменную внутри одинарных кавычек. Вы, вероятно, имели в виду этоbsub -I -q reg -w "done($JOB1)" -J $JOB2 "ls /usr/ &"
LSF может не знать о первой работе, когда подана вторая работа. Поскольку первый bsub запускается в фоновом режиме, оба bsub "гоняют" друг друга. Возможно, что второй 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 ...>