- 论坛徽章:
- 0
|
#!/bin/sh
while true
do
# restart the PROGRESS if it's dead.
HOMEDIR="/usr/local/apache2"
PROG="apachectl"
LOGPATH="/var/log"
LOGFILE="monitor_apache.log"
PROG_NUM=1
PROG_NUM=`ps aux | grep httpd | grep -v "grep"| wc -l|sed -e 's/^[[:space:]]*//g'|tr -d '\n'`
if [ $PROG_NUM -eq 0 ];then
date +"[%Y-%m-%d %H:%M:%S]" >> $LOGPATH/$LOGFILE
echo "httpd is dead." >> $LOGPATH/$LOGFILE
$HOMEDIR/bin/$PROG start >>/var/log/apache.log
echo "restart the progress..." >> $LOGPATH/$LOGFILE
echo >> $LOGPATH/$LOGFILE
else
:
fi
sleep 30
done
脚本开始运行正常,但在运行10,20分钟后就会在/var/log/monitorhttpd.log日志里不断的报restart the progress的错误,同时/var/log/apache.log文件里也会不断的apache重新启动的提示,httpd (pid xxxx) already running但其实服务一直都是正常的. 应该不会频繁的要启动服务
在freebsd系统下测试,琢磨好几天也没理出个头绪.但在linux系统下运行是正常的,难道和shell有关系?freebsd默认是csh. |
|