elementary OSで、apache2がサーバーダウンした時に、自動的に再起動するスクリプト。

[crayon]
#!/bin/bash

SERVICE=apache2
RESULT=`ps aux |grep apache2 |grep -v “grep”| wc -l`
LOG_PATH=/var/log/apache_down/
LOG_FILE=service-apache
EXT_LOG=”.log”
LOG=$LOG_PATH$LOG_FILE”1″$EXT_LOG
HTML_LOG=/home/USERDIR/public_html/apache2_info/index.html
HTML_LOG2=/home/USERDIR/Dropbox/index.html
APACHE_MIN=2
APACHE_MAX=30

if [ ! -d $LOG_PATH ]; then
/bin/mkdir -p $LOG_PATH
fi

if [ ! -f $LOG ]; then
echo “apache2 info” > $LOG
fi

echo “

===== `date +%Y/%m/%d/%H:%M` =====

##### RESULT = $RESULT #####

” >> $LOG

if [ $RESULT -lt $APACHE_MIN -o $RESULT -gt $APACHE_MAX ] ; then
killall -9 $SERVICE
echo “

Try $SERVICE service restart!
” >> $LOG
/etc/init.d/$SERVICE restart >> $LOG
echo “

” >> $LOG
else
echo “

Service $SERVICE is operating favorably.

” >> $LOG
fi
ln -f $LOG $HTML_LOG
ln -f $LOG $HTML_LOG2
[/crayon]

[crayon]
StartServers 20
MinSpareServers 20
MaxSpareServers 20
ServerLimit 20
MaxClients 20
MaxRequestsPerChild 500

Timeout 30
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 3
[/crayon]

そして、監視するのは、この例で言えば、”HTML_LOG”か、もしくは、”HTML_LOG2″となります。
apache2のプロセスが、2より小さいか、または、80より大きいかで再起動がかかります。それ以外の場合は、apache2を再起動させずに、華麗にスルーします。
参照元さんが、あったのですが、なんかなくなっていました。
参照元さんにお礼が言いたいです。有り難うございました。