1.编写脚本
#! /bin/bash
#jar包和日志文件存放位置--改成自己的
dir=/home/myTest
#jar包名称--改成自己的
process=test.jar
#查看jar包运行进程的pid
pid=$(ps -ef | grep $dir/$process | grep 'java' | grep -v grep | awk '{print $2}')
#如果进程不存在,重启jar包服务
if [ -z "$pid" ];
then
nohup java -jar $dir/$process >> $dir/log.log 2>&1 &
echo $(date +"%Y-%m-%d %T")"__程序宕机,自动重启" >> $dir/info.log
fi
#如果进程存在写日志,此处需要放开注释即可
#if [ -n "$pid" ];
#then
# echo $(date +"%Y-%m-%d %T")"__程序已启动,无需重启" >> $dir/info.log
#fi
2.写入定时任务
crontab -e
#在定时任务中设定任务,5分钟检查一次
*/5 * * * * sh /home/myTest/start.sh
附注:
查看jar包运行进程的pid的命令:
pid=$(ps -ef | grep test.jar | grep 'java' | grep -v grep | awk '{print $2}')
命令解析:
ps -ef | grep test.jar--查找包含test.jar的进程
grep 'java'--查找Java进程
grep -v grep-- 过滤掉查找进程的自身这条命令;
awk '{print $2}--输出第二列的内容,也就是pid