Với Platform LSF , có lệnh nào sẽ đợi một công việc cụ thể hoặc tất cả các công việc đã gửi của tôi hoàn thành trước khi quay lại không? Nói cách khác, tôi đang tìm kiếm LSF tương đương với wait
lệnh tích hợp trong bash.
Với Platform LSF , có lệnh nào sẽ đợi một công việc cụ thể hoặc tất cả các công việc đã gửi của tôi hoàn thành trước khi quay lại không? Nói cách khác, tôi đang tìm kiếm LSF tương đương với wait
lệnh tích hợp trong bash.
Câu trả lời:
Nếu bạn đưa ra -K
tùy chọn bsub
, nó sẽ đợi công việc hoàn thành trước khi quay lại. Sau đó, bạn có thể nền một số bsub
lệnh trong shell và sử dụng wait
lệnh của shell để chờ chúng. Thí dụ:
#!/bin/bash
bsub -K -o out.1 sleep 10 &
bsub -K -o out.2 sleep 5 &
wait
bwait
Thí dụ:
bsub -J 'myjobname' -o bsub.log bash -c 'date && sleep 10'
bwait -w 'ended(myjobname)'
Việc bwait
chờ đợi cho đến khi tương ứng bsub
kết thúc.
Phương pháp tương tự cũng hoạt động cho các mảng công việc -K
không được hỗ trợ:
bsub -J 'myjobname[1-40]' -o 'bsub%I.log" 'sleep $JOBINDEX && echo $JOBINDEX'
bwait -w 'ended(myjobname)'
Bên cạnh ended()
đó cũng có done()
và exit()
, bwait
chỉ thực hiện thoát thành công nếu trạng thái thoát tương ứng 0
hoặc không 0
, và nếu không thì thất bại với:
Wait condition is never satisfied
bởi vì LSF có trạng thái công việc khác nhau cho cả hai trường hợp.
Tài liệu liên quan: