Fork me on GitHub

The WebDevil

Enjoy development

Проблема: вызываем

/etc/init.d/apache2 restart

и этот зверь ругается, что порт залочен и не может открыть логи.
Причина: когда вызывается apache_stop, то он на самом деле вызывает apache2ctl graceful-stop. Это не убивает апач сразу, а дает ему некоторое время чтоб умереть самому… Но на нагруженом сервере это и есть проблема – он умирает очень долго.
Решение: в /etc/init.d/apache2 найти и заменить

$APACHE2CTL graceful-stop

на

$APACHE2CTL stop

Тогда апач умирает мгновенно.

Также есть вариант в рестарте sleep вместо 10 заменить на 15, но мне не помогло.

Ссылка

7 Responses to “apache restart bug”

  1. гы-гы, welcome to the club :)

    при очередном лог ротейте сервак не вернулся ?

    я исправил просто заменив restart на reload…

    Petruk

  2. ибо надоело вставать в 6 утра по писку системы мониторинга… Ж)

    Petruk

  3. кста в Дебе кажись это уже пофиксили давно, хотя я не проверял…все так и стоит лог-ротейт на reload

    Petruk

  4. Дык я просто не мог сделать /etc/init.d/apache2 restart – он все висел, и все умирал… И тут по прошествии секунд 10ти скрипт стартует нового индейца. Индеец видит что порт залочен, логи тоже – и идет лесом. А старый как раз доумирает. =(
    Вот заменив пофиксил.

    dm

  5. ну дый яж об этом же…токо apache2 restart у меня токо крон делал..руками я только reload делаю если надо конфиги обновить…

    Petruk

  6. вообще отлично перегружается apache2ctl restart и ни какой ругани ;)

    snake851

  7. Как бы да. Но используя системные скрипты (а не родные апача) мы получаем баг. И система если что делает – делает как раз через те самые багнутые скрипты ;)

    dm