Уважаемые товарищи, пожалуйста подскажите, как можно реализовать следующую штуковину..
Изредка падает апач, надо чем-то мониторить, запущен ли он, и если нет то запускать. Наверняка есть какие-то службы для этого, но я таких пока не знаю..
-
Как вариант:
Пихаем в cron скрипт, который, скажем, каждые 15-20 минут проверяет, запущен ли apache. Для этого смотрит список процессов и pid файл в /var/run (если мне память не изменяет, там должен быть и апачевский файл).
-
-
То есть вариант только самому писать скрипт?
-
-
Ну, возможно есть и какие-то готовые решения. Сказал то, что первое пришло в голову. Мне бы было наверное проще написать самому, т.к. скрипт по сути выйдет в строчек 10.
-
лучше поразгребай логи? почему апаче падает. некрасиво же...
ну или в крайнем случае мониторь лог файл на наличие _ацке_строчке_опаадении_аппача_
-
По-хорошему, вам бы действительно выяснить, почему оно падает. Кроме логов ещё советую глянуть в dmesg и посмотреть, не убивается ли оно ядром.
По идее, апач должен создавать pid-файл, по которому можно искать процесс с определённым PID.
Кроме того, на сегодня существуют небольшие утилиты как раз для такого дела. Они называются супервизоры(supervisor). Посмотрите на daemontools от DJB.
-
-
Это всё конечно не считая комплексных сетевых утилит мониторинга, типа Nagios.
-
while [ 1 ]; do apache2; date -R > /root/down.txt; killall apache2; sleep 5; done
только вместо apache2 там что то другое придётся написать. В общем нужно запускать апач не в бэкграуннде.
Если апач именно падает - то такое будет работать. Если апач просто пересттаёт отвечать - напишите скрипт, который будет проверять через w3m какой либо сайт. Если вдруг w3m выдаст что то нето - то киллять процессы апача и запускать его.
W3m моожно заменить на wget + cat
-
-
Если падает апач, нужно искать проблему в апаче, нэ?
Конечно можно бороться со следствием, но более Ъ - найти причину.
-
-
не всегда проблему удаётся найти в адекватные сроки. Как например у меня ejabberd - падал и всё тут. Всё перековырял. Запускал указанным выше методом. Через пару недель такой работы - ejabberd перестал падать.
-
-
Сам по себе перестал падать?
(особая, jabber'овская магия)
-
-
да, сам по себе)
ejabberd - вообще магическая вещь. До сих пор мало кто понимает, почему на debian lenny установленный из реп ejabberd не запускается =)
-
-
Deb/Squeeze, sudo aptitude ejabberd.
Делал буквально сегодня в 5:00 утра, работает :)
-
Как уже сказали лучше разбераться с апачем. А по вопросу поищи информацию по слову watchdog.
-
Ошибку не знаю как исправить..
вот записи из лога
Graceful restart requested, doing restart
sage fault or similar nasty error detected in the parent process
вот, перезагружается он непонятно когда и почему сам, примерно раз в сутки-двое..
иногда рестартится нормально, иногда вот так.. что только вырубается но не запускается((
-
-
Версия апача, и я понимаю, PHP юзаешь?
Случайно не Alternative PHP Cacher?
-
-
Я вот юзаю APC для PHP на Debian Lenny (из стандартного репозитория) и раз-два в месяц он у меня вылетает с ошибками в логах:
Feb 5 14:43:42 sea kernel: [6910307.868512] apache2[15246]: segfault at 7fff0db91fe8 ip 7f6058d559e0 sp 7fff0db91ff0 error 6 in libphp5.so[7f60589fc000+587000]
Думаю вот на APC грешить или нет, но без него долго потестить не хватает силы воли - что-то всё тормозит ужастно ;( Да и кеширование данных в PHP через него на некоторых сайтах реализовано, поэтому избавляться не очень хочется...
-
-
Просто по запросу seg fault or similar nasty error первой ссылкой выдает /http://www.electrictoolbox.com/seg-fault-or-similar-nasty-error/
Где юзается Apache, PHP5 и APC.
Только там несколько другая штука.
-
-
А еще гугл выдает следующее:
Re: Регулярный graceful restart Apache
Truewar-6.5.88 » 2008-07-10 9:34:04
Причину Graceful обнаружил. Нерационально была настроена ротация логов. Получалось как раз в начале часа проверялся размер и раз в 1-3 часа что, то да заполнялось больше, чем нужно. А при ротации логов, чтобы апач начал писать в новый лог-файл производится graceful рестарт.
-
Да не сам,
Graceful restart requested, doing restart
его кто-то просит сделать грейсфул рестарт, после которого и происходит сегфолт
-
попробуй поотчипляй модули различные сначала ненужные совсем и по градиенте к нужным. Вдруг это не сам апача, а модуль какой нибудь, как булей заметил довольно логично (+)
-
Попробуйте пакет daemontools: http://cr.yp.to/daemontools.html
Он проверяет запущен ли сервис, а если нет - то поднимает.
-
Monit :)
-
Для таких вещей принято использовать Нагиос. Но учти, что скрипт почти наверняка придётся писать к нему самому. Так что проще всего просто написать скрипт, проверяющий состояние апача и передёргивающий его по случаю. Но вообще падающий апач это очень плохо, так что лучшее разобраться почему он падает.
-
Костыль прост как три рубля. В крон на каждую минуту-две:
ps ax | grep %processname% | grep -v grep -q || service %processname% restart
-
-
Сам хотел подобный однострочник написать :) но, имо, лучше апач исправить.
-
-
Согласен. Просто может вдруг кому еще пригодится.
-
http://welinux.ru/post/1071 это подойдёт?
-
Апач не должен падать ! Какой линукс версия апача и покажи свою секцию MPM ???
|
|
|
Последние посты
|
|
Последние комментарии
|
|
Изменения
|
|
Черновики (все)
|
|
Избранное (всё)
|
|
|