Linux上用cron定时任务加Shell脚本实现判断服务挂掉宕机后自动重启服务
整数比较:
-eq(equal) : 测试两个整数是否相等;比如 $A -eq $B
-ne(inequality) : 测试两个整数是否不等;不等,为真;相等,为假;
-gt(greter than) : 测试一个数是否大于另一个数;大于,为真;否则,为假;
-lt(less than) : 测试一个数是否小于另一个数;小于,为真;否则,为假;
-ge(greter equal): 大于或等于
-le(less equal) :小于或等于
命令的间逻辑关系:
逻辑与: &&
第一个条件为假时,第二条件不用再判断,最终结果已经有;
第一个条件为真时,第二条件必须得判断;
逻辑或: ||
vim pushflow.sh
#!/bin/bash
# 查询push-flow的进程个数
count=`ps -ef | grep push-flow-system-5.1.2.jar | grep -v "grep" | wc -l`
# echo $count
sec=7
nowtime=`date +"%Y-%m-%d %H:%M:%S"`
nowDate=`date +"%Y-%m-%d"`
for i in 1
do
if [ $count -gt 0 ];then
echo sleep $sec ,the push-flow is still alive
else
# 若进程未关闭则,重新启动,并列出循环
cd /app/push-flow
nohup java -jar push-flow-system-5.1.2.jar > /dev/null 2>&1 &
echo $nowtime " start push-flow-system-5.1.2.jar"
echo "ok is successful"
break
fi
done
将写好的脚本加入到定时计划任务:每分钟检测一次
* * * * * /bin/bash pushflow.sh