%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EC%97%90%EC%84%9C%20%EC%9E%91%EC%97%85%EC%9D%B4%20%EC%8B%A4%ED%96%89%20%EC%A4%91%EC%9D%B8%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
여러 작업을 제출하기 위해 bash 스크립트를 실행하고 있습니다. 작업은 아직 실행되지 않은 경우에만 제출됩니다. bash 스크립트에서 if 문을 사용하여 "job123"이 이미 실행 중인지 또는 대기열에 있는지 간단히 확인하고 싶습니다.
qstat 및 qstatus에 대해 다른 옵션을 시도했지만 작업 이름으로 확인할 수 없는 것 같습니다. 이 정보를 검색하는 방법은 무엇입니까? 또한 이러한 출력은 단지 문자열일 뿐이므로 grep을 사용해 본 적도 없지만 특정 명령이 있어야 한다고 생각합니다.
답변1
Sun/Oracle Grid Engine의 qstat
유틸리티를 사용하면 사용자 및 작업 ID별로 작업을 필터링할 수만 있습니다. 직위별로 필터링해야 하는 경우 grep
다음을 수행해야 합니다.
qstat -u $USER | grep -w jobname
if
- 문에 사용됨 :
if qstat -u $USER | grep -q -w "$jobname"; then
# job is in the queue
else
# job is not in the queue
fi
저도 인터넷으로 잠깐 검색해본 결과일부버전qstat
나타나다스위치를 사용하여 -j
작업 이름으로 필터링하는 기능:
qstat -u $USER -j "$jobname"
이것이 작동하는지 확인할 수 없습니다.다른 버전이 유틸리티는 분명히 그렇게 할 수 없습니다(지원하지도 않습니다 -u
).
답변2
해결할 수 있게 됐어요
qstat -r | grep -cw "작업 이름"
if 문에서 사용할 수 있는 0 또는 1을 제공합니다. 이것은 나에게 해킹처럼 보입니다. -r은 작업의 전체 이름을 표시하므로 중요합니다.