아래 의사코드에 대한 논리를 구축하려고 합니다.
if 'main' job fails
sleep 60
re-trigger main job for 3 times.
after re-triggering for 3 times if it still fails ,
then kill the main job .
ksh 123.ksh ##main command
if [[ $?!=0 ]]
then
sleep 30
ksh 123.ksh
if [[ $?!=0 ]]
then
sleep 30
ksh 123.ksh
fi
fi
여기에 1달러를 더 추가할 수 있나요? 확인하고 30번 잠을 자면 3~4번 계속할 수 있습니다. 그러나 나는 좀 더 일반적인 방법을 찾고 있습니다.
세 번 다시 트리거하고 실패하는 논리를 파악할 수 없습니다.
답변1
한 가지 옵션:
#! /bin/sh -
remaining_attempts=3; until main-job; do
if [ "$(( remaining_attempts -= 1 ))" -eq 0 ]; then
echo>&2 "Giving up"
exit 1
fi
sleep 60
done