Автор Тема: Реализация watchdog на линукс.  (Прочитано 1518 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн zartus

  • БК
  • *
  • Пол: Мужской
  • Ыыы
    • Personal portal
Реализация watchdog на линукс.
« : 23 Января 2014, 22:17:00 »
Как это делается? Просто перезапуск процесса через крон, если его нет в памяти, это не вариант.
У примеру бывает, что не монтируется какая-то партишн. То есть нужно проверить наличие моунта и при отсутствии перемонтировать. Ну или сервис завис и висит в памяти, тогда ответы по портам смотреть надо. В винде я видел программу, которая это делает. Линукс под вопросом. Хотелось бы что-то готовое без самописных скриптов.
"На крайнем севере очень быстро даёт о себе знать песец"
© В мире жывотных.
Руки прочь от ...
<<http://tc-vertical.ucoz.ru>>Турклуб Вертикаль

Оффлайн Raido

  • Редкий гость
Re: Реализация watchdog на линукс.
« Ответ #1 : 23 Января 2014, 22:23:05 »
посмотрите  Supervisor

Оффлайн Raido

  • Редкий гость
Re: Реализация watchdog на линукс.
« Ответ #2 : 24 Января 2014, 15:59:35 »
разобрались? помог мой ответ?

Оффлайн zartus

  • БК
  • *
  • Пол: Мужской
  • Ыыы
    • Personal portal
Re: Реализация watchdog на линукс.
« Ответ #3 : 24 Января 2014, 18:14:07 »
Там долго разбираться. Пока не нашел, можно ли проверить наличие монтированного диска /mnt/disk1, то есть смонтирован или нет.
"На крайнем севере очень быстро даёт о себе знать песец"
© В мире жывотных.
Руки прочь от ...
<<http://tc-vertical.ucoz.ru>>Турклуб Вертикаль

Оффлайн Raido

  • Редкий гость
Re: Реализация watchdog на линукс.
« Ответ #4 : 25 Января 2014, 06:04:08 »
конечно можно. да просто ps aux посмотрите. это если не писать скриптов проверки и перезапуска как раз.

а суть супевизора в том, чтобы запускать всё что угодно от его имени и он сам уже следит за процессом, и перезапускает, если укажите в конфиге явно это делать.
далее всё для ubuntu пишу (для других дистров пути соответственно могут отличаться)
создаете файлик disk1.conf (в директории /etc/supervisor/conf.d) типа:

[program:mountd1]
command = mount /mnt/disk1 ;название программы *
autorestart=true
всё остальное
http://supervisord.org/configuration.html#program-x-section-values
там же и установка и инициализация при запуске системы описаны.
дальше уже действовать надо от supervisorctl
то есть перечитать, перезапустить что то типа в таком порядке (извините, пишу по памяти):
sudo supervisorctl stop
sudo supervisorctl update
sudo supervisorctl start

потом, уже проверяете запуск программы *: supervisorctl status [b]mountd1[/b]но, если ваша команда запускается с ошибкой, то супервизор не вывалит её. в таком случае команту mount /mnt/disk1 лучше запихнуть в отдельный файл, и перезаписать это всё, с параметрами вывода логов. файл должен быть исполняемым. и в конфиге супервизора пишите command=/path/to/file
если же у вас там много всего, то наверное стоит ставить Zabbix или аналог. на хабрахабре совсем недавно была статья со сравнением таких систем, кстати. но дальше этого всего не подскажу, не имел с этим дело.

ну и еще вроде у супервизора вроде имеется какой-никакой веб-интерфейс, что может помочь.

если что то будет непонятно, спросите, мне самому будет интересно помочь.
п.с. всё, кофе сварился... :P
« Последнее редактирование: 25 Января 2014, 06:17:31 от Raido »