The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Мониторинг состояния процесса httpd"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Мониторинг состояния процесса httpd"  
Сообщение от Павел email(??) on 01-Окт-08, 06:29 
Добрый день.
Друзья, передо мной появилась такая задача, прошу помочь разобраться в ее решении.
Постановка: требуется на языке Си реализовать работу двух следующих функций (рассматриваемая ОС - FreeBSD):
1) Функция f1 принимает в качестве своего аргумента название процесса (давайте попробуем рассмотреть на примере httpd).
Функция должна определить запущен ли процесс с таким именем, а если процесс по каким либо причинам не запущен - стартовать его (команды start/stop допустим определены в конфиг файле программы и нашей функции известны).

Комментарии:
В самом простейшем случае работу функции представляю себе такой:
а) Получаем название процесса.
б) Смотрим есть ли его отображение в /var/run/.
в) Если есть, все ок, если нет - запускаем.
Мне остается непонятным, что будет, если скажем установлено два сервера Apache, или процесс не хранит свое отображение в /var/run/.
То есть желательно определить способ, схожий по принципу работы с тем, как происходит получение информации о пользователи системы, файлах (заполняются информацией поля элемента определенной структуры).

2) Функция f2 должна проверить, есть доступ (возвращается ли содержимое страницы?) по http по 80 порту (определить, таким образом, корректно ли функционирует Apache). И если нет, то перезагрузить его. Команды, опять же, известны.

Комментарии:
Здесь к сожалению ничего кроме как телнетом по 80 порту ничего в голову не приходит.


В результате, получится примитивный аналог программы monit для одного процесса.
Очень прошу помочь советами. Заранее благодарен.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Мониторинг состояния процесса httpd"  
Сообщение от vg (??) on 01-Окт-08, 11:42 
какова конечная цель?
почему не использовать готовые программы?
например, Nagios имеет плагины check_procs и check_httpd
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Мониторинг состояния процесса httpd"  
Сообщение от Andrey Mitrofanov on 01-Окт-08, 12:04 
>Добрый день.
>Друзья, передо мной появилась такая задача, прошу помочь разобраться в ее решении.
>
>Постановка: требуется на языке Си реализовать работу двух следующих функций

Выбор языка несколько необычен... То ли "студент с заданием от препода" пришёл, то ли "эмбеддед солюшен профешшионал программер".

>(рассматриваемая ОС - FreeBSD):
>1) Функция f1 принимает в качестве своего аргумента название процесса (давайте попробуем
>рассмотреть на примере httpd).

Запускать "приложение" из inittab? -->man inittab

>2) Функция f2 должна проверить, есть доступ (возвращается ли содержимое страницы?) по
>http по 80 порту (определить, таким образом, корректно ли функционирует Apache).
>И если нет, то перезагрузить его. Команды, опять же, известны.

По крону (man crontab) проверять связь с и ответ от и прибивать процесс, если не. После чего он будет [пере]запущен по п.1.

>Здесь к сожалению ничего кроме как телнетом по 80 порту ничего в
>голову не приходит.
>
>
>В результате, получится примитивный аналог программы monit для одного процесса.
>Очень прошу помочь советами. Заранее благодарен.

Традиционными средствами - где-то так. При чём тут "написать программу" и Си - не знаю.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру