centos时刻检查java状态并重启

简介: centos时刻检查java状态并重启

linux后台运行jar包,有时会意外退出,linux(centos)定时计划运行sh检查jar包运行状态并重启jar包


1、新建restart.sh


cd /home

touch restart.sh


2、权限设置744(需要注意定时任务的用户有没有运行权限)


chmod 744 restart.sh


3、编辑restart.sh 文件:

#!/bin/sh
export LANG="en_US.UTF-8"
export JAVA_HOME=/usr/java/jdk1.8.0_152
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/dt.jar:$JAVA_HOME/tools.jar 
#java
#http://www.wityx.com/post/829_1_1.html
jarDir="/home"
jar="wuliaokankan.cn-1.1-0.0.1.jar"
logFile="/home/logs/restart.log"
restart(){
cd ${2}
if [ ! -f ${1} ];then
echo "jar not exist" >> ${logFile}
return
fi
(java -jar ${1} &)
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
}
#http://www.wityx.com/post/829_1_1.html
check(){
count=$(ps -ef | grep ${1} | grep -v "grep")
if [ -n "${count}" ];then
#echo "`date` ${1} is running" >> ${logFile}
echo "`date` ${1} s running"
else
restart ${1} ${2}
echo "`date` ${1} is down. restartig" >> ${logFile}
#echo "`date` ${1} is down"
fi
}
check ${jar} ${jarDir}


4、执行检查是否正常


./restart.sh

若报bin/sh^M: bad interpreter: No such file or directory

原因:.sh脚本在windows系统下用记事本文件编写的。不同系统的编码格式引起的。

解决方法:修改.sh文件格式

(1)使用vi工具

vi test.sh

(2)利用如下命令查看文件格式

:set ff 或 :set fileformat

可以看到如下信息

fileformat=dos 或 fileformat=unix

(3) 利用如下命令修改文件格式

:set ff=unix 或 :set fileformat=unix

:wq (存盘退出)

注:其实,在windows下通过git bash可以直接编写unix格式.sh!


5、加入系统定时任务


每小时检查jar包运行,如果退出重启

crontab -e

* */1 * * * /bin/sh /home/restart.sh


linux(centos)定时检查jar包运行状态若退出就重启

linux后台运行jar包,有时会意外退出,linux(centos)定时计划运行sh检查jar包运行状态并重启jar包

相关文章
|
1月前
|
Java 编译器
Java一分钟之——异常分类:检查异常与运行时异常
【5月更文挑战第20天】Java异常处理分为检查异常(Checked Exceptions)和运行时异常(Unchecked Exceptions),两者在编译期处理方式不同。检查异常需捕获或声明,如`IOException`,而运行时异常如`NullPointerException`在运行时终止程序。常见问题包括不恰当的异常使用、过度捕获和忽略异常信息。避免策略包括正确区分异常类型、具体捕获和处理异常信息。示例代码展示了如何处理这两种类型的异常。理解并妥善处理异常能提升程序的健壮性和可维护性。
51 4
|
2天前
|
Java Shell Nacos
centos7.x使用nacos2.1.0(解决JAVA_HOME、javac报错)
centos7.x使用nacos2.1.0(解决JAVA_HOME、javac报错)
6 1
|
23天前
|
Ubuntu Java Linux
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
34 2
|
1天前
|
Java Linux
Centos安装openjdk11并配置JAVA_HOME
Centos安装openjdk11并配置JAVA_HOME
6 0
|
2天前
|
Java
java自定义检查对象属性是否为空
java自定义检查对象属性是否为空
4 0
|
3天前
|
Java Linux 开发工具
Centos安装java
Centos安装java
14 0
|
21天前
|
Java 数据库 Spring
(JAVA)服务端实现检查当前用户连续签到天数、是否连续签到等业务
(JAVA)服务端实现检查当前用户连续签到天数、是否连续签到等业务
|
1月前
|
Linux
如何检查CentOS版本:5种方法
这个文件包含了CentOS的详细版本信息,包括版本号、架构等。
58 0
|
10月前
|
Java 关系型数据库 MySQL
CentOS需要安装的JAVA环境的相关软件
【JDK 1.7】 https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u80-oth-JPR 选择 Java SE Development Kit 7u80 下面的 Accept License Agreement 然后点击 jdk-7u80-linux-x64.tar.gz 下载 【Tomcat 7】 http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0
|
11月前
|
数据可视化 NoSQL Java
Centos8安装java部署环境
Centos8安装java部署环境
104 0