Я запускаю задачу ANT в фоновом режиме и проверяю с интервалом в 60 секунд, завершена ли эта задача или нет. Если это не так, каждые 60 секунд на экране должно отображаться сообщение: «Процесс развертывания все еще выполняется. Секунды $ slept с момента запуска развертывания», где $ 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
Теперь проблема в том, что этот код не работает. Это выглядит как очень хороший код, и все же, это не работает. Может кто-нибудь указать, что не так с этим кодом, пожалуйста.