#! /bin/sh
PRO_NAME=./TEST

StartPro()
{
${PRO_NAME} > /dev/null 2>&1 &
date >> ./reboot.log
echo ${PRO_NAME}" start..." >> ./reboot.log
}

while true; do
sleep 1
#用ps获取$PRO_NAME进程数量
PRO_NUM=`ps aux | grep ${PRO_NAME} | grep -v grep | wc -l`
#少于1,重启进程
if [ "${PRO_NUM}" -lt "1" ] ; then
echo "${PRO_NAME} was killed"
StartPro
#大于1,杀掉所有进程,重启
elif [ "${PRO_NUM}" -gt "1" ]; then
echo "more than 1 ${PRO_NAME},killall ${PRO_NAME}"
killall -9 ${PRO_NAME}
sleep 2
StartPro
fi
#kill僵尸进程
PRO_STAT=`ps aux | grep ${PRO_NAME} | grep T | grep -v grep | wc -l`
if [ ${PRO_STAT} -gt 0 ] ; then
killall -9 ${PRO_NAME}
sleep 2
StartPro
fi
done

exit 0