# !/bin/bash
# filename:keep.sh
# author:sam
cmdself=$0
echo "self cmd $cmdself"
cmdfilename=${cmdself#*/}
echo "self name $cmdfilename"
nodestr='node';
#要检测的命令名
processname='mftapfish';
# 获取时间并格式化
LOCAL_TIME=$(date +"%Y-%m-%d %H:%M:%S")
while true
do
#不能通过过滤color来统计,要过滤grep,很多出错在此
#sshd_count1=`ps -ef | grep $processname | grep -v color | wc -l`
#echo "curr process num1: $sshd_count1"
sshd_count=`ps -ef | grep $processname | grep -v grep | wc -l` # 查看有多少ssh服务
echo "curr process num: $sshd_count"
if [ $sshd_count -lt 1 ]
then
echo $LOCAL_TIME $processname 'not find service, restart'
#systemctl start sshd
#$PWD/run.sh
if [[ $processname == *$nodestr* ]]
then
nohup $processname &
echo 'restart:' $processname
else
nohup ./$processname &
fi
else
echo $processname 'running ...'
fi
sleep 5 # sleep,Shell关键词。数字5表示沉睡5秒,每隔5秒检查一次
done