Мы часто используем развертывание с использованием udeploy, и у нас есть сценарий оболочки для перезапуска HTTP-сервера apache в качестве последней задачи. Сценарий прост: -Перезапустите IBM-сервер IBM, используя скрипт в udeploy для каждого развертывания
cd bin_path
sudo ./apachectl -k stop
sleep 5
sudo ./apachectl start
Проблема здесь заключается в том, что иногда команда остановки занимает больше времени, чем на 5 секунд, что приведет к сбою запуска с «сервер уже запущен» сообщение. После того, как запуск завершится неудачно, остановка завершится, что приведет к остановке сервера. Следовательно, поиск лучшего решения, чтобы убедиться, что сервер полностью остановлен до того, как запуск будет отменен.
'sudo ./apachectl start; в то время как [$? -ne 0]; сделать sudo ./apachectl start; сон 1; done' – bishop
вы имеете в виду после остановки, я должен использовать этот сон 5, а затем начать, а затем использовать [$? -ne 0], затем следующая строка начинается и, наконец, сходит 1 .... правильно? – Ashley
означает, что он попытается запустить сервер, пока статус выхода из стартового скрипта не равен 0. Я бы добавил спать посередине, иначе он может попытаться запустить его много раз :) –