首页 > 服务器    日期:2026-06-20 / 浏览

Linux定时监听Tomcat服务

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/jre
date=`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.sh
else
   echo "tomcat already start,no need to do"
fi
  • 为其添加可执行的权限:chmod +x /var/sh/monitor.sh
  • 编辑系统级别所在的定时配置文件:vim /etc/crontab
  • 追加内容:*/10 * * * * root /var/sh/monitor.sh #定义十分钟检查tomcat,如果关闭就重启 (注意空格)

定时

关闭服务器上的 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_171
export JRE_HOME=/usr/java/jdk1.8.0_171/jre

然后关闭 Tomcat 运用程序,再 tail -f /var/spool/mail/root 查看定时任务日志是否会出现错误,没有就可以正常运行了。

追加:服务器 Tomcat 增加内存大小

打开至 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"

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持教程之家。

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章