제가 분석을 실행 중인 슈퍼컴퓨터는 작업 관리를 위해 SGE를 사용하며 각 작업이 24시간 이상 지속되지 않도록 요구합니다. 그리고 이 기능은 나에게 두통을 안겨준다.
안타깝게도 체크포인트 메커니즘을 사용하여 결과를 출력하고 스크립트를 다시 제출하라는 요청을 받았습니다 qsub myJobScript
. 프로그램에 관한 한 출력 파일에 이름이 지정되어 있다고 가정하면 시계 시간이 23:30:00에 도달할 때(IO 작업에 30분을 제공합니다) 임시 파일을 출력하도록 하는 것은 어렵지 1.00137/U
않습니다 1.00137/p
.
참고: 과제를 제출하면 언제 시작될지 알 수 없습니다. 하지만 시작되면 내 폴더 아래에 로그 파일이 있습니다.
제 질문은 "새 파일"이 생성되고 감지될 때 어떻게 bash 스크립트를 사용하여 내 작업을 자동으로 제출할 수 있느냐는 것입니다 crontab
. at
어떤 아이디어가 있나요?
답변1
5분마다 간단한 스크립트를 실행합니다 cron
. 귀하의 crontab은 다음과 같습니다:
*/5 * * * * /path/to/your/script
스크립트 의사코드:
IF (lockfile exists) { exit }
create lockfile
IF (old job has not finished yet) {
remove lockfile
exit
}
IF (new job has already been queued) {
remove lockfile
exit
}
schedule new task
remove lockfile
바라보다쉘 스크립트의 잠금이 정확합니까?(가능한 한 경쟁 조건 없이) 적절하게 잠그는 방법을 배우십시오.