백그라운드에서 ANT 작업을 실행하고 있고 해당 작업의 완료 여부를 60 초 간격으로 확인하고 있습니다. 그렇지 않은 경우 60 초마다 메시지가 화면에 표시되어야합니다. "배포 프로세스가 아직 실행 중입니다. $ slept seconds from deploy started", 여기서 $ slept는 60, 120, 180 n입니다.쉘 스크립트 작업 상태 모니터링
한계는 1200 초입니다. 그 후 스크립트는 'ant log'명령을 통해 로그를 표시하고 계속할지 묻습니다. 사용자가 계속 선택하면 시간 제한에 300 초가 추가되고 프로세스가 반복됩니다. 나는이 작업을 위해 사용하고
코드는 -
ant deploy &
limit=1200
deploy_check()
{
while [ ${slept:-0} -le $limit ]; do
sleep 60 && slept=`expr ${slept:-0} + 60`
if [ $$ = "`ps -o ppid= -p $!`" ]; then
echo "Deploy process is still running. $slept seconds since deploy started."
else
wait $! && echo "Application ${New_App_Name} deployed successfully" || echo "Deployment of ${New_App_Name} failed"
break
fi
done
}
deploy_check
if [ $$ = "`ps -o ppid= -p $!`" ]; then
echo "Deploy process did not finish in $slept seconds. Here's the log."
ant log
echo "Do you want to kill the process? Press Ctrl+C to kill. Press Enter to continue."
read log
limit=`expr ${limit} + 300`
deploy_check
fi
이제 문제는 -이 코드는 작동하지 않습니다. 이 코드는 완벽하게 좋은 코드처럼 보이지만 아직 작동하지 않습니다. 누구든지이 코드가 잘못된 점을 지적 해 줄 수 있습니까?
어떻게 작동하지 않는지 구체적으로 설명해 주실 수 있습니까? –
그는 이전 질문 인 http://stackoverflow.com/questions/2810757/how-to-do-parrallel-processing-in-unix-shell-script/2812763#2812763의 의견에 항상 그가 "아직 실행 중"이라는 메시지. – pra
@pra : 포인터 주셔서 감사합니다.OP가이 질문에이 정보를 전달 했어야합니다. –