The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Автоматический перезапуск служб во FreeBSD
В процессе установки ПО для FreeBSD "правильные" службы автоматически прописывают скрипт запуска 
в /usr/local/etc/rc.d и управление его поведением определяется в /etc/rc.conf 

Однако случается так что успешно запустившись при включении сервера, служба по
ряду причин падает позже
в процессе работы (такое случается например c dovecot или squid). В результате чего как минимум 
требуется перезапуск с последующим анализом причин поведения. Про анализ причин
поведения отдельная песня,
а вот перезапускать в таких редких случаях ручками может получиться с изрядными задержками, 
пока не выяснится, что что-то перестало работать.

На этот счет я практикую запуск через cron команды которая проверяет все
сконфигурированные к запуску
скрипты /usr/local/etc/rc.d на предмет поддержки команды status и если эта команда возвращает 
отрицательный результат (т.е. сервис не активен) то заново запускает его. 

Итого в файле /var/cron/tabs/root значится строка 

   */5 * * * * /usr/bin/find /usr/local/etc/rc.d/ -type file | xargs -I$ sh -c "($  2>&1 | grep -q -v status) \
      && exit ; ($ status > /dev/null) && exit ; $ start"

В итоге, если служба остановилась, она будет перезапущена в течении 5 минут, и
на root придет сообщение
с логом запуска (если конечно почтовая подсистема настроена)
 
04.06.2009 , Автор: Алексей Волков
Раздел:    Корень / Администратору / Система / FreeBSD специфика / Установка и апгрейд FreeBSD и приложений.

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, metallic, 18:35, 04/06/2009 [ответить] [смотреть все]
  • +/
    Хорошая заметка, у меня пару раз postfix падал
     
     
  • 2.2, goshanecr, 19:27, 04/06/2009 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    По-моему такой вариант не всегда подходит например squid бывает редко вылета... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.26, ffsdmad, 07:22, 09/06/2009 [^] [ответить] [смотреть все]  
  • +/
    странно у вас, люди спецом под кеш разделы выделают, накапливают его и лелеют, а... весь текст скрыт [показать]
     
  • 2.5, Timka, 22:32, 04/06/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    это что же вы такое с ним делаете, что он падает у меня он не падал с нагрузкой... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.25, ffsdmad, 07:18, 09/06/2009 [^] [ответить] [смотреть все]  
  • +/
    звучит как, он у меня не падал без нагрузки ... весь текст скрыт [показать]
     
  • 1.3, IceMan, 19:49, 04/06/2009 [ответить] [смотреть все]  
  • +/
    monit спасет отцов русской демократии )
     
  • 1.4, iZEN, 20:05, 04/06/2009 [ответить] [смотреть все]  
  • +/
    http://www.lissyara.su/?id=1268
     
  • 1.6, andrew222222222, 22:37, 04/06/2009 [ответить] [смотреть все]  
  • +/
    daemontools еще есть
     
  • 1.7, shixaro, 22:58, 04/06/2009 [ответить] [смотреть все]  
  • +/
    а monit использовать не разумнее?
     
  • 1.8, Алексей Волков, 09:02, 05/06/2009 [ответить] [смотреть все]  
  • +/
    Не имею ничего против monit или daemontools. Но хочу особо подчеркнуть, что по сути одна строчка в единственном файле призывает на службу достаточно неплохие штатные возможности для уменьшения рисков от простоя служб.

    P.S. Всегда можно сочинииь ситуацию в которой не мпоможет ни мой скрипт, ни monit ни кто другой.

     
     
  • 2.9, hostmaster, 12:01, 05/06/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Ваш скрипт в отличие от monit не учитывет вариант когда сервис по каким то причи... весь текст скрыт [показать] [показать ветку]
     
  • 1.10, monitord, 12:57, 05/06/2009 [ответить] [смотреть все]  
  • +/
    http://www.freshports.org/sysutils/monitord/

    "This port allows one to monitor other standalone services and
    automatically restart them if they are accidentally and unwittingly
    terminated, or crash either because of instability or a DoS attack.
    It simplifies a task capable of being performed by cron(8) by not
    requiring custom scripts to be written for each service being
    monitored. The configuration file is simple and easily setup."

     
     
  • 2.13, GR, 22:41, 05/06/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Для FreeBSD шников - не няшно - оно просит procfs ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, ander, 15:21, 06/06/2009 [^] [ответить] [смотреть все]  
  • +/
    А что нельзя примаунтить ее ... весь текст скрыт [показать]
     
  • 1.11, Аноним, 21:24, 05/06/2009 [ответить] [смотреть все]  
  • +/
    ммм вроде как в юниксах всегда демоны были, не службы службы это из другой о... весь текст скрыт [показать]
     
  • 1.12, Warhead Wardick, 22:37, 05/06/2009 [ответить] [смотреть все]  
  • +/
    Алексей, а мне Ваш скрипт нравится. Я "малую механизацию" вообще уважаю :)

    (Спокойно! Там где нужна "тяжелая", она и стоит.)

    Для тех кому нужно "кэш в сквиде почистить перед стартом" рекомендую творчески подойти к самой последней части скрипта "$ start" ...

    Тем кто боится что оно "закидет" бессмысленными email-ами ... Если уж вы чего то ради поставили бох на мониториг - в таком письме очень много смысла! И наводит на мысли о премии которая была так близка и еще есть пол часа чтобы ssh'нуться и еЯ спасти ... :)
    Ну и _12_ писем в час для реального админа - это скорее ТИШИНА :)

     
     
  • 2.14, GR, 22:44, 05/06/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Хорошо показывает возможности голой системы, и они таки есть BTW - в Solari... весь текст скрыт [показать] [показать ветку]
     
  • 2.15, User294, 07:34, 06/06/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Как по мне - тупо флудить по поводу облома старта процесса 12 раз в час, но при ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.21, Pain, 07:16, 08/06/2009 [^] [ответить] [смотреть все]  
  • +/
    Для альтернативно одарённых было написано - что де там где малой механизацией ... весь текст скрыт [показать]
     
  • 1.17, Дмитрий Ю. Карпов, 15:12, 06/06/2009 [ответить] [смотреть все]  
  • +/
    Интереснее было бы сделать иначе:
    * Собрать информацию о PID-файлах (они характеризуют запущенность демона).
    * Повесить wait() на все демоны, которые оставили PID-файлы.
    * При окончании одного из демонов в зависимости от кода его завершения принимать решение о перезапуске.

    А ещё круче - опрашивать демонов на предмет отклика, и если не откликается - то убить и запустить заново. Опрос демона можно делать отдельной программой, специфичной для каждого протокола; а перезапускать как описано в первом абзаце.

     
     
  • 2.19, shixaro, 18:33, 06/06/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    кажется, Вам nagios нужен :)
     
  • 2.20, User294, 23:34, 06/06/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    >А ещё круче - опрашивать демонов на предмет отклика, и если не
    >откликается - то убить и запустить заново.

    А вы пробовали по ссылкам народа из коментов походить?А то они дело говорят.Тот же monit и подобные насоветованные в коментах как раз примерно такое и делают... будучи небольшими такими утилитками с кучкой возможностей.

    До кучи насчет скриптов есть вот какая мысль: если в системе уже задница, совсем не факт что новый процесс (как то периодический чекер по крону) вообще осилит запуститься.Например, прикиньте - память кончается?А вот возьмет и не хватит ее на старт нового процесса.И чего?В этом плане у мелкого демона-монитора имхо 5 очков форы вперед (он может память себе заранее выделить и будет продолжать работать даже в ситуации "наступила жопа").

     
  • 1.22, paranormal, 10:31, 08/06/2009 [ответить] [смотреть все]  
  • +/
    Спасибо большое за идею. Вижу не только у меня на новых фрях с новыми сквидами такая проблема возникла... В 6-рках 2-х годичной давности такой проблемы нету... Хотя хз, если обновить то может и будет :(.
     
  • 1.23, Аноним, 11:08, 08/06/2009 [ответить] [смотреть все]  
  • +/
    она будет перезапущена в течениЕ 5 минут В течениИ реки, но в течениЕ времени ... весь текст скрыт [показать]
     
  • 1.24, TomB, 13:48, 08/06/2009 [ответить] [смотреть все]  
  • +/
    Наверное кто-нибудь использует в подобных случаях отправку смс-ок от сервера, как это вообще делается?
    Мой оператор мегафон не хочет рассказывать, звонил им в саппорт.
     
     
  • 2.27, shixaro, 13:07, 09/06/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    sms via email. Подключается услуга, и достаточно просто отправить письмо на number@sms.ugsm.пумпурум
     
     
  • 3.28, AdVv, 18:33, 09/06/2009 [^] [ответить] [смотреть все]  
  • +/
    Либо смастерить smsgate из старенького мобильника. На эту тему была статейка кажется на лисяре. Нашел не поленился http://www.lissyara.su/?id=1787
     
  • 2.29, hhg, 21:11, 09/06/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    можно посмотреть алгоритмы в Coyote SMS. По крайней алгоритм работы билайновской проги отправки sms - именно из Койота вычитал.

    http://www.cwer.ru/

    http://forum.altlinux.org/index.php/topic,299.0.html

     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList