背景
由于这个服务每天1点多假死,临时解决,使用定时重启脚本,临时解决问题。
脚本
#!/bin/bash
#2020年11月18日
#auto realtime restart
#by author sytu
####################################################3
TIME=`date +%Y-%m-%d_%H`
proc_name="realtime-1.0.jar"
realtime_DIR="/tpdata/iflytek/realtime/"
pid=$(ps -ef|grep $proc_name | grep -v grep |awk '{print $2}')
#这里需要定义环境变量,如果不定义,手动执行脚本正常,通过crontab定时任务执行失败
source /etc/profile
source ~/.bash_profile
proc_num()
{
num=`ps -ef|grep $proc_name |grep -v grep | wc -l`
return $num
}
proc_num
number=$?
if [ $number -eq 0 ];then
echo -e "\033[31m $TIME 进程不存在,重启服务!!\033[0m"
cd $realtime_DIR
mv nohup.out nohup_$TIME.out
nohup java -jar realtime-1.0.jar &
else
echo -e "\033[31m $TIME 进程存在,重启!! \033[0m"
kill -9 $pid
cd $realtime_DIR
mv nohup.out nohup.out_$TIME
nohup java -jar realtime-1.0.jar &
fi
设置定时任务
crontab -e
增加如下一行:
#每天2点20分执行脚本,并将日志输入到log里面
20 2 * * * /bin/bash /tpdata/Crontab/realtime_restart.sh >> /tpdata/Crontab/realtime_restart.log