watchdog.shbash
1 #!/bin/bash 2 3 now=`date '+%Y-%m-%d %H:%M:%S'` 4 baseDir=$(cd `dirname $0`; pwd) 5 sleepTime=10 6 7 #user=`whoami` 8 user="root" 9 if [ "$user" != "root" ]; then 10 echo "this tool must run as *root*" 11 exit 12 fi 13 14 if [ ! $# == 1 ]; then 15 echo "Usage: $0 servicename" 16 exit 17 fi 18 19 while [ 0 -lt 1 ] 20 do 21 now=`date '+%Y-%m-%d %H:%M:%S'` 22 ret1=`ps -ef | grep $1 | grep -v grep | grep -v watchdog | wc -l` 23 if [ $ret1 -eq 0 ]; then 24 echo "$now $1 service not exists ,start $1 service now... " 25 echo $ret1 26 service $1 start 27 echo "$now start $1 done ..... " 28 else 29 echo "$now $1 service exists , sleep $sleepTime seconds " 30 fi 31 sleep $sleepTime 32 done
watchdog_start.shthis
1 #!/bin/sh 2 ./watchdog_stop.sh 3 4 servicename=zookeeper 5 ./watchdog.sh $servicename>watchdog.log 2>&1 &
watchdog_stop.shspa
1 #!/bin/sh 2 servicename=zookeeper 3 4 pid=`ps aux | grep "watchdog.sh $servicename" | grep -v grep | awk '{print $2}'` 5 if [[ -z $pid ]]; then 6 echo not find "watchdog.sh $servicename" running 7 else 8 kill -9 $pid 9 fi