WatchDog script for checking server running

# Service watchdog script
# Put in crontab to automatially restart services (and optionally email you) if they die for some reason.
# Note: You need to run this as root otherwise you won't be able to restart services.
# Example crontab usage:
# Strict check for apache2 service every 5 minutes, pipe results to /dev/null
# */5 * * * * sh /root/ apache2 "" > /dev/null
# "Loose" check for mysqld every 5 minutes, second parameter is the name of the service
# to restart, in case the application and service names differ. Also emails a report to
# about the restart.
# */5 * * * * sh /root/ mysqld mysql > /dev/null
# Common daemon names:
# Apache:
# apache2 - Debian/Ubuntu
# httpd - RHEL/CentOS/Fedora
# ---
# MySQL:
# mysql - Debian/Ubuntu
# mysqld - RHEL/CentOS/Fedora
# ---
# Service name
DATE=`date +%Y-%m-%d--%H-%M-%S`
EXTRA_PGREP_PARAMS="-x" #Extra parameters to pgrep, for example -x is good to do exact matching
MAIL_TO="$3" #Email to send restart notifications to
#path to pgrep command, for example /usr/bin/pgrep
#Check if we have have a second param
RESTART="/sbin/service ${SERVICE_NAME} restart" #No second param
RESTART="/sbin/service ${SERVICE_RESTARTNAME} restart" #Second param
#if we get no pids, service is not running
if [ "$pids" == "" ]
if [ -z $MAIL_TO ]
echo "$DATE : ${SERVICE_NAME} restarted - no email report configured."
echo "$DATE : Performing restart of ${SERVICE_NAME}" | mail -s "Service failure: ${SERVICE_NAME}" ${MAIL_TO}
echo "$DATE : Service ${SERVICE_NAME} is still working!"
# copylefted from
/bin/bash /root/ mysqld mysqld "$mailto"
/bin/bash /root/ httpd httpd "$mailto"
/bin/bash /root/ pound pound "$mailto"
/bin/bash /root/ redis-server redis "$mailto"
/bin/bash /root/ memcached memcached "$mailto"

/bin/bash /root/ searchd searchd "$mailto"

0 (0)
Article Rating (No Votes)
Rate this article
There are no attachments for this article.
There are no comments for this article. Be the first to post a comment.
Full Name
Email Address
Security Code Security Code
Related Articles RSS Feed
HOWTO: Use SSL/port 465 in smarthost stunnel
Viewed 3488 times since Fri, Sep 28, 2018
Find All Large Files On A Linux System
Viewed 1904 times since Mon, Oct 29, 2018
Odpalenie polecenia tylko na jedną godzinę
Viewed 2592 times since Thu, May 24, 2018
Linux How to reset a root password on Fedora
Viewed 2215 times since Sun, Dec 6, 2020
stunnel: Authentication
Viewed 8974 times since Fri, Sep 28, 2018
Szybkie sprawdzenie zewnętrznego adresu IP i hosta
Viewed 3150 times since Thu, May 24, 2018
What Is /dev/shm And Its Practical Usage
Viewed 7635 times since Tue, Mar 12, 2019
RHEL: Manually encrypting a filesystem with LUKS
Viewed 3497 times since Sun, May 27, 2018
8 Vim Tips And Tricks That Will Make You A Pro User
Viewed 2733 times since Fri, Apr 19, 2019
Linux Kernel /etc/sysctl.conf Security Hardening
Viewed 23206 times since Fri, Aug 3, 2018