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 “
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を再起動させずに、華麗にスルーします。
参照元さんが、あったのですが、なんかなくなっていました。
参照元さんにお礼が言いたいです。有り難うございました。