프로세스 종료 후 다음 프로세스가 시작할 수 있게 하고 싶습니다.
글쓴이: jullujet / 작성시간: 목, 2021/10/14 - 11:53오후
for var in 1 2 3 4
do
bsub < IP_$var;
if [$? -eq 0]; then
cat IP_$var.log >> IP.log
else
sleep
fi
done
IP_1 을 실행하면 IP_1.log 가 발생하고 이걸 IP.log 에 계속 붙여나가는 명령을 IP_4 까지 반복하려고 합니다.
앞의 내용을 받아서 다음 작업이 이뤄지게 만들어야 하는데(ex:IP_2 는 IP_1 의 결과에서 시작)
위처럼 실행하면 IP_1 부터 IP_4까지 한꺼번에 실행됩니다.
IP_1 이 실행해서 완전히 프로세스가 종료되면 IP.log 에 IP_1.log 의 내용을 넣어놓고 IP_2 를 시작하게 만들 수 있을까요?
최대한 자세히 설명한다고 했는데 혹시라고 부족하다면 다시 설명해보겠습니다!
Forums:
bsub는 jub scheduler에 job을
bsub는 jub scheduler에 job을 submit하는 명령입니다.
따라서 위와 같이 하는 경우 IP_1이 종료된 후 IP_2가 시작됨을 보장할 수 없습니다.
(scheduler 설정에 따라 다르겠지만 그렇지 않을 확률이 훨씬 더 높습니다.)
종료후 실행보장을 원하면 bsub를 사용하면 안됩니다.
간단히
bsub < IP_$var
부분을sh IP_$var
정도로 수정하면 될 것 같습니다.sleep 명령어도 의도가 분명치 않고, 파라메터 없이 sleep을 쓸수는 없습니다.
앞에 job이 실패하면 루프가 종료되는게 맞아 보이므로, sleep 대신 break 가 맞겠습니다.
다른 방법으로,bsub -K < IP_$var 와
다른 방법으로,
bsub -K < IP_$var
와 같이 하면 이 job이 끝날때까지 기다린다고 하네요.-K 가 해답이었네요!!!!
정말 감사합니다! 저는 어떻게든 중간에 멈추는 다른 명령어가 없을까 찾고 있었는데 job scheduler 에서 그걸 해줄수가 있었군요. 정말 감사합니다~!!!!
댓글 달기