Ubuntu中Tomcat的自动重启怎么设置
导读:Ubuntu中Tomcat自动重启的设置 一、推荐方式 systemd服务自恢复 适用于 Ubuntu 16.04 及以上,使用 systemd 管理进程,配置一次即可在崩溃或异常退出后自动拉起。 操作步骤: 创建服务文件 sudo n...
Ubuntu中Tomcat自动重启的设置
一、推荐方式 systemd服务自恢复
- 适用于 Ubuntu 16.04 及以上,使用 systemd 管理进程,配置一次即可在崩溃或异常退出后自动拉起。
- 操作步骤:
- 创建服务文件 sudo nano /etc/systemd/system/tomcat.service
- 写入示例配置(按需修改路径与用户)
[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151 Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh User=tomcat Group=tomcat UMask=0007 Restart=always RestartSec=10 [Install] WantedBy=multi-user.target - 使配置生效并启用 sudo systemctl daemon-reload sudo systemctl enable tomcat.service sudo systemctl start tomcat.service
- 常用命令 systemctl status tomcat.service journalctl -u tomcat.service -f
- 说明:
- 关键参数是 Restart=always 与 RestartSec=10,表示进程异常退出后 10 秒自动重启。
- 如通过包管理器安装了 tomcat9,可直接使用系统单元(如 tomcat9.service),按需设置 Restart=always 并启用即可。
二、定时巡检脚本兜底(进程或页面不可达时重启)
- 适用场景:希望有“看门狗”定期探测,进程假死或端口未监听时强制重启。
- 操作步骤:
- 新建监控脚本 /usr/local/bin/monitor_tomcat.sh(示例为每 10 分钟检查一次)
#!/bin/sh export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151 export PATH=$JAVA_HOME/bin:$PATH CATALINA_HOME=/opt/tomcat STARTUP=$CATALINA_HOME/bin/startup.sh SHUTDOWN=$CATALINA_HOME/bin/shutdown.sh LOG=/usr/local/tomcat/logs/monitor.log URL="http://127.0.0.1:8080/" # 按安装目录名精确匹配进程,避免误杀 PID=$(ps -ef | grep -w "$CATALINA_HOME" | grep -v grep | awk '{ print $2} ') ts() { echo "[$(date +'%F %T')] $*"; } if [ -n "$PID" ]; then code=$(curl -s -o /dev/null -w "%{ http_code} " --connect-timeout 10 --max-time 20 "$URL") if [ "$code" = "200" ]; then ts "Tomcat OK (PID=$PID, HTTP $code)" else ts "Tomcat unhealthy (HTTP $code), restarting..." $SHUTDOWN > /dev/null 2> & 1 sleep 5 # 兜底强杀 kill -9 $PID 2> /dev/null rm -f $CATALINA_HOME/temp/tomcat.pid 2> /dev/null $STARTUP > /dev/null 2> & 1 fi else ts "Tomcat not running, starting..." $STARTUP > /dev/null 2> & 1 fi - 赋权并测试 chmod +x /usr/local/bin/monitor_tomcat.sh sudo /usr/local/bin/monitor_tomcat.sh
- 加入定时任务(root 用户) sudo crontab -e 加入:*/10 * * * * /usr/local/bin/monitor_tomcat.sh > > /usr/local/tomcat/logs/monitor_cron.log 2> & 1
- 新建监控脚本 /usr/local/bin/monitor_tomcat.sh(示例为每 10 分钟检查一次)
- 说明:
- 通过检测 HTTP 200 判断应用是否可用,不可用时先优雅关闭再强杀并启动。
- 日志建议单独落盘,便于排查。
三、定时重启(兜底维护,非首选)
- 若确需按天/周重启以释放资源,可用 crontab 定时执行重启脚本。
- 示例(每天 04:30 重启):
- 重启脚本 restart_tomcat.sh
#!/bin/sh export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151 $CATALINA_HOME/bin/shutdown.sh > /dev/null 2> & 1 sleep 10 kill -9 $(ps -ef | grep -w "$CATALINA_HOME" | grep -v grep | awk '{ print $2} ') 2> /dev/null rm -f $CATALINA_HOME/temp/tomcat.pid 2> /dev/null $CATALINA_HOME/bin/startup.sh - 赋权并加入计划任务 chmod +x /usr/local/bin/restart_tomcat.sh sudo crontab -e 加入:30 04 * * * /usr/local/bin/restart_tomcat.sh > > /usr/local/tomcat/logs/restart.log 2> & 1
- 重启脚本 restart_tomcat.sh
- 说明:
- 定时重启能掩盖内存泄漏等问题,建议优先使用“自恢复 + 巡检”的组合策略。
四、旧系统兼容方式(sysvinit 或 Upstart)
- 适用于 较老版本 Ubuntu(如 14.04 等),可将 Tomcat注册为系统服务并设置开机自启。
- 基本步骤:
- 在 /etc/init.d/ 下创建 tomcat 脚本(支持 start/stop/restart),设置可执行权限。
- 注册开机启动: sudo update-rc.d tomcat defaults 或使用 sysv-rc-conf 工具管理: sudo sysv-rc-conf tomcat on
- 说明:
- 新版本 Ubuntu 默认使用 systemd,仅在必要时才采用该方式。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中Tomcat的自动重启怎么设置
本文地址: https://pptw.com/jishu/755818.html
