Linux 下 Tomcat 服务,因为各种原因异常关闭后,实现自动重启服务,保证服务可用。
需要使用到的知识点涉及到 crontab,分为两种:系统级别(/etc/crontab)和用户级别(crontab -e),本文使用的是系统级别的 crontab .
在你的服务器目录上创建一个 .sh 脚本文件,我这边命名为 monitor.sh,该脚本内容如下:
#!/bin/sh # 这个是 java 在服务器端所配置的位置 使用 which java 查看即可JAVA_HOME=/usr/java/jdk1.8.0_171 JRE_HOME=/usr/java/jdk1.8.0_171/jredate=`date`# tomcat-9 是你 tomcat 的目录所取的名称echo 'operate restart tomcat: /usr/local/tomcat/tomcat-9/bin'pid=`ps -ef |grep tomcat |grep -w 'tomcat-9'|grep -v 'grep'|awk '{print $2}'`#pid=`lsof -i:88`echo 'exist pid:'$pid#-z表示不存在 if [ -z "$pid" ] then echo "===========startup.sh==============" /usr/local/tomcat/tomcat-9/bin/startup.shelse echo "tomcat already start,no need to do"fi
关闭服务器上的 Tomcat 服务后,稍等一会系统就会执行所编写的定时脚本
控制台会提示:
You have a change on /var/spool/mail/root
# 查询定时任务是否执行成功的日志tail -f /var/spool/mail/root
会报如下错误:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
该处错误需要在对应的 Tomcat 中增加自己的 JAVA_HOME 和 JRE_HOME 配置
vim /usr/local/tomcat/tomcat-9/bin/setclasspath.sh
加入配置:
export JAVA_HOME=/usr/java/jdk1.8.0_171export JRE_HOME=/usr/java/jdk1.8.0_171/jre

然后关闭 Tomcat 运用程序,再 tail -f /var/spool/mail/root 查看定时任务日志是否会出现错误,没有就可以正常运行了。
打开至 Tomcat 的 bin 目录,编辑 vim catalina.sh ,在 OS specific support. $var must be set to either true or false.
内容后追加下面的内容即可,内存大小可根据自己的服务器来更改。
JAVA_OPTS="-Xmx2048m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=768m -Xss2m"CATALINA_OPTS="-Djava.awt.headless=true"
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
您可能感兴趣的文章: