Простейшая реализация Watchdog для apache

Что такое watch dog? Watch Dog — это системный демон, который при определенных условиях, к примеру подвисания или падения службы перезапускает её в автоматическом режиме.

Вот его то мы с вами сейчас и напишем.

Давайте начнем с проверки, запущенно ли приложение. Сделать это довольно просто и существует несколько разных способов. К примеру практически все приложения создают pid файл, если приложение «сдохло» то пид файла нет. А так же в пид файл пишется номер процесса, который можно использовать для поиска приложения в списке запущеных программ. Но в моём случае такой вариант не сильно подходит, да и считаю я его не надежным.

Наш вачдог:
#!/bin/bash
ps ax | grep apache2 | grep -v grep -q || /etc/init.d/apache2 restart > /dev/null
otvet=`curl -s -L --head -w "%{http_code}\n" <a href="http://www.%D1%81%D0%B0%D0%B9%D1%82.net" onclick="javascript:_gaq.push(['_trackEvent','outbound-article','http://www.сайт.net']);" rel="nofollow" class="external" target="_blank">http://www.сайт.net</a> | tail -n1`
if [ $otvet -ne "200" ]
then
echo "`date +%d-%m-%Y`  `date +%H:%M:%S%t` Server podvis" >> /var/log/vault_daemons.log
/etc/init.d/apache2 restart
fi
exit 0


Сохраним скрипт, поставим права на запуск и добавим в крон.