Linux 监测程序且宕机重启

#!/bin/sh
command="/usr/local/Presto/presto-server-0.100/bin/launcher run"  #路径
appname=presto-server #进程名
logfile=/usr/local/log/presto_monitor.log  #log路径
#返回 ps -ef 出来的所有字符串中含有 $appname 的进程个数 
checkrun=`ps -ef | grep $appname | grep -v "grep" | wc -l`
echo "$appname 运行监测开始….." 
#ps -ef | grep launcher | grep -v "grep" | wc -l 
#while true 
#do
#echo $checkrun 
if [ 0 = $checkrun ]; then 
#进程不存在 
time2=$(date "+%Y-%m-%d %H:%M:%S")
echo "$appname 服务宕机,正在重新启动"
#echo "$appname 服务宕机,宕机时间为:"$time2>>$appname.log 
./$appname $appname &logfile 
nohup $command > $logfile 2>&1 &
#nohup /usr/local/Presto/presto-server-0.100/bin/launcher run > presto_run.log 2>&1 &
sleep 1 
pid=$(ps -ef | grep -v 'grep' | egrep $appname| awk '{printf $2 " "}') 
echo "$appname ($pid)重新启动成功!!!"
else 
#进程存在 
sleep 1 
pid=$(ps -ef | grep -v 'grep' | egrep $appname| awk '{printf $2 " "}') 
echo "$appname ($pid) 服务运行正常...持续监控中" 
fi time=$(date "+%Y-%m-%d %H:%M:%S") 
echo "本轮监测完毕,当前时间为:"$time
#done 
#这里有一行
posted @ 2021-07-16 00:52  Azuki_op  阅读(276)  评论(0)    收藏  举报