pgrep command

pgrep looks through the currently running processes and lists the process IDs which matches the selection criteria to screen. If no process found it will simply return exit status 0 (zero).

Download the script and set cronjob as follows:
*/5 * * * * /path/to/script.sh >/dev/null 2>&1

Sample script

  1. #!/bin/bash
  2. # Apache Process Monitor
  3. # Restart Apache Web Server When It Goes Down
  4. # ————————————————————————-
  5. # Copyright (c) 2003 nixCraft project <http://cyberciti.biz/fb/>
  6. # This script is licensed under GNU GPL version 2.0 or above
  7. # ————————————————————————-
  8. # This script is part of nixCraft shell script collection (NSSC)
  9. # Visit http://bash.cyberciti.biz/ for more information.
  10. # ————————————————————————-
  11. # RHEL / CentOS / Fedora Linux restart command
  12. RESTART=”/sbin/service httpd restart”
  13. # uncomment if you are using Debian / Ubuntu Linux
  14. #RESTART=”/etc/init.d/apache2 restart”
  15. #path to pgrep command
  16. PGREP=”/usr/bin/pgrep”
  17. # Httpd daemon name,
  18. # Under RHEL/CentOS/Fedora it is httpd
  19. # Under Debian 4.x it is apache2
  20. HTTPD=”httpd”
  21. # find httpd pid
  22. $PGREP ${HTTPD}
  23. if [ $? -ne 0 ] # if apache not running
  24. then
  25. # restart apache
  26. $RESTART
  27. fi