#!/bin/bash 
#shell自检启动守护程序 
#有时候服务进程会挂掉,可以运行个守护脚本,检测运行状态,启动,发邮件
checkMysql=`pgrep mysql` 
checkNginx=`pgrep nginx` 
checkHttpd=`pgrep httpd` 
 
while : 
do 
    date=$(date +"%Y-%m-%d %H:%M:%S") 
        if [ -n "$checkMysql" ]; then 
                echo 'mysql normal' >/dev/null 2>&1 
        else 
                /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf 
                echo 'checked error: mysqld at ' $date >> /root/server_error.log 
                #send mail
        fi 
 
        if [ -n "$checkNginx" ]; then 
                echo 'nginx normal' >/dev/null 2>&1 
        else 
                /usr/local/nginx/sbin/nginx 
                echo 'checked error: nginx at ' $date >> /root/server_error.log 
                #send mail
        fi 
 
        if [ -n "$checkHttpd" ]; then 
                echo 'httpd normal' >/dev/null 2>&1 
        else 
                /usr/local/apache/bin/apachectl start 
                echo 'checked error: httpd at ' $date >> /root/server_error.log 
                #send mail
        fi 
 
        #休眠 
        sleep 5 
done