% 수정한 내용 시작 %
continue문 삭제....
% 수정한 내용 끝 %
분마다 시간을 체크하는 것이 훨씬 정밀하겠군요.
<pre>
#!/bin/bash
MAXEXEC=10
CHK_T_MIN=50
do_something() {
echo "Do My Job" # -_-;;;;;;
}
i=1
while [ $i -le $MAXEXEC ]
do
TIME=$((date '+%M,%S'))
if [ $(($CHK_T_MIN-${TIME%,*})) -eq 1 ]; then
sleep $((60-${TIME#*,}))s
do_something;
i=$(($i+1))
fi
SLEEP_SEC=$(((90-$(date '+%S'))%60)) # 되도록 다음번에 시간을
# 체크할 때 30초에 맞추도록한다.
# 중간쯤에 위치하게되면 오류가 적어질 것이다.
# 과연 그럴런지는. -_-;;
sleep ${SLEEP_SEC}s
done
exit 0
</pre>
그리고 아까 빼먹은 설명이 있습니다.
nohup을 이용할 경우 좀비프로세스가 되지 않도록 exit를 통해 안전하게 나가거나
좀비프로세스가 생성되었을 경우는 반드시 직접 kill해주셔야합니다.
위의 쉘스크립트도 실행이 잘 될지는 참 의심스럽군요...
그럼 즐거운 쉘스크립트 되시길~~