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
Szybkie sprawdzenie zewnętrznego adresu IP i hosta
Viewed 2819 times since Thu, May 24, 2018
Linux - How to shutdown or reboot
Viewed 1584 times since Fri, Jun 8, 2018
debian How to check Debian CVE status using python script
Viewed 1976 times since Sun, Sep 23, 2018
LVM: Extend SWAP size by growing existing Logical Volume
Viewed 1949 times since Sat, Jun 2, 2018
Increase A VMware Disk Size (VMDK) Formatted As Linux LVM without rebooting
Viewed 14556 times since Wed, May 30, 2018
Linux Network (TCP) Performance Tuning with Sysctl
Viewed 10025 times since Fri, Aug 3, 2018
LVM: Remove an existing Volume Group
Viewed 4534 times since Sat, Jun 2, 2018
RHEL7: Configure automatic updates.
Viewed 1350 times since Wed, Oct 17, 2018
logrotate How log rotation works with logrotate
Viewed 8239 times since Sun, Jan 12, 2020
RHEL: How to change a USER/GROUP UID/GID and all owned files
Viewed 17802 times since Sat, Jun 2, 2018