To restart lighttpd if it went down or crashed, create a file check_lighttpd.sh
mkdir /usr/serverok vi /usr/serverok/check_lighttpd.sh
With the following content
#!/bin/bash
/usr/bin/wget --tries=1 --timeout=30 -O /dev/null http://localhost:80/up.html
if [ $? -ne 0 ]; then
(
killall -9 lighttpd;
killall -9 gam_server;
killall -9 php-cgi;
/etc/init.d/lighttpd stop;
mv /var/log/lighttpd/access.log /var/log/lighttpd/access.$(date +%Y%m%d_%H).log
mv /var/log/lighttpd/error.log /var/log/lighttpd/error.$(date +%Y%m%d_%H).log
/etc/init.d/lighttpd start;
echo 'restarting lighttpd' `ps aux` | mail -s "`hostname` restarting lighttpd `who | awk '{print $6}'`" you@yourdomain.extn
datetime=`date "+%Y%m%d %H:%M:%S"`
echo $datetime "failure">>/var/log/lighttpd/check.log
)
fi
Make it executable
chmod 755 /usr/serverok/check_lighttpd.sh
Create a file up.html on web root of your web site
echo "up" > /path/to/docroot/up.html
Now set a cronjob to run every 5 minutes
crontab -e
Add following cronjob
*/5 * * * * /usr/serverok/check_lighttpd.sh 1> /dev/null 2> /dev/null
See lighttpd

Leave a Reply