linux 程序失败自动重启

最近写了一个spark streaming 程序,但是程序跑着跑着就报错了,而且不会自动重启,以下脚本实现了程序失败自动重启

基本原理:查看程序日志文件是否有ERROR或Exception字样,有说明报错了,然后kill进程,重启程序

#!/usr/bin/env bash
#一个死循环,每20s检测一次
while true
do
 #找到最新的log,程序最新保存的日志
 logfile=$(ls -lrt /data1/db_LBS/location/log |awk '{print $NF}' | tail -n 1)
 #echo ${logfile}
 #检查程序是否出错,逻辑:日志中包含ERROR 或 Exception
 cat /data1/db_LBS/location/log/${logfile} | grep -E "ERROR|Exception" > error
 #判断 error文件是否为空,若不为空则执行if else 逻辑
 if [ -s error ]
 then
 #----kill 进程
  ps -ef | grep -i kafka.sh | awk '{print $2}' | xargs kill -9
  ps -ef | grep -i kafkadata | awk '{print $2}' | xargs kill -9
  yarn application -list | grep -i db_lbs | awk '{print $1}' | xargs yarn application -kill
  #----kill 进程
  time=$(date +"%Y%m%d%H%M%S")
  #重启程序
  sh kafka.sh > ../log/log_${time} 2>&1 &
 fi
 sleep 20s
done

 

转载于:https://www.cnblogs.com/jason-dong/p/9644276.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值