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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值