I've noticed this more and more lately:
1 -- Apache goes down under a very low load, who knows why, and stays down. tailwatchd does not do it's job to bring Apache back up.
2 -- When running this at shell:
service httpd status
... the command only stalls and produces no result. Still the load is very low and Apache is dead.
3 -- he following command only shows one process ID (perhaps a zombie process because again, Apache is dead):
/usr/bin/pgrep httpd
4 -- Our third party monitoring goes off, or a customer calls to complain, then I go to shell and do this:
/etc/rc.d/init.d/httpd startssl
...then everything starts up again.
I've tried using the following script (croned to run every minute) that checks for Apache processes then restarts if there is none, but due to that one lame process (I guess), the script does not work very well:
---------------------
#!/bin/bash
# Apache Process Monitor
# Restart Apache Web Server When It Goes Down
# -------------------------------------------------------------------------
# Copyright (c) 2003 nixCraft project <http://cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit Bash Shell Scripting Directory For Linux / UNIX for more information.
# -------------------------------------------------------------------------
# RHEL / CentOS / Fedora Linux restart command
RESTART="/sbin/service httpd restart"
# uncomment if you are using Debian / Ubuntu Linux
#RESTART="/etc/init.d/apache2 restart"
#path to pgrep command
PGREP="/usr/bin/pgrep -l -x"
# Httpd daemon name,
# Under RHEL/CentOS/Fedora it is httpd
# Under Debian 4.x it is apache2
HTTPD="httpd"
# find httpd pid
$PGREP ${HTTPD}
if [ $? -ne 0 ] # if apache not running
then
# restart apache
$RESTART
fi
---------------------
Anyone? Any ideas?
Thanks much!
1 -- Apache goes down under a very low load, who knows why, and stays down. tailwatchd does not do it's job to bring Apache back up.
2 -- When running this at shell:
service httpd status
... the command only stalls and produces no result. Still the load is very low and Apache is dead.
3 -- he following command only shows one process ID (perhaps a zombie process because again, Apache is dead):
/usr/bin/pgrep httpd
4 -- Our third party monitoring goes off, or a customer calls to complain, then I go to shell and do this:
/etc/rc.d/init.d/httpd startssl
...then everything starts up again.
I've tried using the following script (croned to run every minute) that checks for Apache processes then restarts if there is none, but due to that one lame process (I guess), the script does not work very well:
---------------------
#!/bin/bash
# Apache Process Monitor
# Restart Apache Web Server When It Goes Down
# -------------------------------------------------------------------------
# Copyright (c) 2003 nixCraft project <http://cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit Bash Shell Scripting Directory For Linux / UNIX for more information.
# -------------------------------------------------------------------------
# RHEL / CentOS / Fedora Linux restart command
RESTART="/sbin/service httpd restart"
# uncomment if you are using Debian / Ubuntu Linux
#RESTART="/etc/init.d/apache2 restart"
#path to pgrep command
PGREP="/usr/bin/pgrep -l -x"
# Httpd daemon name,
# Under RHEL/CentOS/Fedora it is httpd
# Under Debian 4.x it is apache2
HTTPD="httpd"
# find httpd pid
$PGREP ${HTTPD}
if [ $? -ne 0 ] # if apache not running
then
# restart apache
$RESTART
fi
---------------------
Anyone? Any ideas?
Thanks much!