Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux定时监听Tomcat服务

Linux如何定时监听Tomcat服务

作者:vnjohn

这段文章详细介绍了在Linux系统系统中使用cronttab实现Tomcat服务自动重启的方法,涵盖crontabab配置、脚本编写及执行权限设置、环境变量配置等Tomcat服务优化等内容,确保服务稳定运行

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

定时

关闭服务器上的 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"

总结

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

您可能感兴趣的文章:
阅读全文