2016-08-23 5 views
0

Мы часто используем развертывание с использованием udeploy, и у нас есть сценарий оболочки для перезапуска HTTP-сервера apache в качестве последней задачи. Сценарий прост: -Перезапустите IBM-сервер IBM, используя скрипт в udeploy для каждого развертывания

cd bin_path 
sudo ./apachectl -k stop 
sleep 5 
sudo ./apachectl start 

Проблема здесь заключается в том, что иногда команда остановки занимает больше времени, чем на 5 секунд, что приведет к сбою запуска с «сервер уже запущен» сообщение. После того, как запуск завершится неудачно, остановка завершится, что приведет к остановке сервера. Следовательно, поиск лучшего решения, чтобы убедиться, что сервер полностью остановлен до того, как запуск будет отменен.

+1

'sudo ./apachectl start; в то время как [$? -ne 0]; сделать sudo ./apachectl start; сон 1; done' – bishop

+0

вы имеете в виду после остановки, я должен использовать этот сон 5, а затем начать, а затем использовать [$? -ne 0], затем следующая строка начинается и, наконец, сходит 1 .... правильно? – Ashley

+0

означает, что он попытается запустить сервер, пока статус выхода из стартового скрипта не равен 0. Я бы добавил спать посередине, иначе он может попытаться запустить его много раз :) –

ответ

1

Я предлагаю apachectl restart, если вы что-нибудь еще между стоп & начала не делать.