Есть у меня в подчинении Web-серверок Apache на удалённом сервере типа «Форточка 2008». Работает себе отлично, да вот понадобилось ему профилактику сделать, то есть остановить-поднастроить-запустить веб-сервис. Как это сделать? Проще простого!
Шаг 1. Найти заранее заготовленный батник останова службы — stop.bat, запустить его, поймать ошибку «Access denied», понять, что запускаю не под административным сеансом консоли.
Шаг 2. Запустить административный сеанс консоли, найти тот же батник, запустить, поймать непонятный «Failed to stop Apache service».
Шаг 3. Открыть Server Manager, раздел Services, попытаться остановить службу Apache вручную, поймать «Can’t stop service Apache. Service didn’t return any error. This could be internal Windows Server error or internal service error. Contact your system administrator».
Шаг 4. Связаться самому с собой, дальше продолжать чухать репу вместе.
Шаг 5. Выполнить вместо Stop Service команду Restart Service. Затем снова Stop Service. Вроде получилось, строчка Started рядом с Apache исчезла. Проверить в браузере — страницы продолжают грузиться. Вернуться в раздел служб, обнаружить запущенную службу.
Шаг 6. Офигеть вкрай с неубиваемости Apache.
Шаг 7. Открыть диспетчер процессов, грохнуть оба процесса httpd.exe, проверить в браузере. Йопт! Этот феникс снова восстал! Откуда?
Шаг 8. Вспомнить наконец, что когда только поставил веб-сервер, собрал на коленке утилитку «Apache Checker», которая с момента запуска сервера тихонько работает себе в свёрнутой консольке. Когда Apache перестаёт отвечать на HTTP-запросы (завис, вырубился, устал, сдох, устроил забастовку, не приемлет бессмысленности этого жестокого мира и т. д.), этот партизан оперативно, методично и никому ничего не говоря перезапускает веб-сервис до достижения эффекта удовлетворения конечного пользователя.