linux服务器上布署的tomcat服务,时常会由于显存不够等诱因被系统kill掉,每次自动重启很麻烦linux,明天来写一个shell脚本定时检测进程状态,假如上次再被打败了就手动重启。
1、新建restart.sh
[root@VM_41_196_centos ~]# cd /usr/local/
[root@VM_41_196_centos local]# vim restart.sh
[root@VM_41_196_centos local]#
2、权限设置744
[root@VM_41_196_centos local]# chmod 744 restart.sh
[root@VM_41_196_centos local]#
*须要注意定时任务的用户有没有运行权限
3、编辑restart.sh文件
#!/bin/sh
export LANG="en_US.UTF-8"
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/dt.jar:$JAVA_HOME/tools.jar
#java
jarDir="/usr/local/test"
jar="test.jar"
logFile="/usr/local/test/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
}
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、执行脚本,检测是否正常
[root@VM_41_196_centos local]# ./restart.sh
[root@VM_41_196_centos local]#
假如报错bin/sh^M:badinterpreter:Nosuchfileordirectory,那是由于你的.sh脚本在windows系统下用记事本文件编撰,不同系统的编码格式造成的。
解决方式:
(1)使用vi工具
[root@VM_41_196_centos local]# vim restart.sh
(2)借助set命令查看文件格式
:set ff
或
:set fileformat
可以见到如下信息:
fileformat=dos
或
fileformat=unix
这一步一定要根据这个来,vim以后,直接:setff,之后回车
(3)借助set命令更改文件格式
:set ff=unix
或
:set fileformat=unix
保存
:wq
注:虽然,在windows下通过gitbash可以直接编撰unix格式.sh!
5、加入系统定时任务
每小时检测jar包运行,假如退出重启
[root@VM_41_196_centos local]# crontab -e
添加自己的任务
* */1 * * * /bin/sh /usr/local/restart.sh
linuxshell
看完文章linux crontab 重启服务linux crontab 重启服务,有任何疑惑linux操作系统培训,请加入群聊一起交流!!!