tomcat突然宕机问题解决方案

tomcat突然宕机问题解决方案一.tomcat突然宕机时间2019年10月19号8点30分51秒,xxxx系统生产环境的92机器出现tomcat突然宕机问题。二.问题定位1.排查tomcat的启停日志。在文件tomcat/logs/localhost.xxxx.log,排查tomcat的启停日志正常。在宕机时刻,有关闭日志输出。2.使用history命令,查看系统的操作命令。发现使用‘./bi…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一.tomcat突然宕机时间

         2019年10月19号8点30分51秒,xxxx系统生产环境的92机器出现tomcat突然宕机问题。

二.问题定位

1.排查tomcat的启停日志。在文件tomcat/logs/localhost.xxxx.log,排查tomcat的启停日志正常。在宕机时刻,有关闭日志输出。

2.使用history命令,查看系统的操作命令。发现使用‘./bin/startup.sh & tail –f logs/catalina.out’的启动命令,并没有任何kill命令和shutdown命令。

3.排查tomcat的运行日志。在文件tomcat/logs/catalina.out中,找到tomcat宕机的时间点的日志,发现没有收到shutdown port的日志。而正常收到shutdown port 命令的会输出日志“org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.”。

4.排查项目的异步日志文件输出,在宕机时间点,所有接口请求正常,响应正常,有接口请求日志输出,有响应日志输出。

         5.经过在网上搜索资料发现。使用‘&’字符命令方式。如果此时,未关闭日志输出,而直接关闭ssh终端,会杀掉最后一行命令‘./bin/startup.sh & tail –f logs/catalina.out’所影响的两个进程,即tomcat的进程和查看日志进程。此时导致了tomcat关闭,出现了突然宕机。

三.场景复现步骤

1.正常关闭tomcat应用,在tomcat运行日志中输出“org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.”。

2.使用“‘./bin/startup.sh & tail –f logs/catalina.out’”命令启动tomcat,项目正常启动,并打开了日志输出。

3.直接关闭ssh终端。

4.打开ssh终端,并查看tomcat的启停日志文件,发现在关闭ssh终端的同时,tomcat应用被关闭。

5.查看tomcat的运行日志,发现在关闭时刻,没有输出“shutdown port”的日志。

6.使用‘./bin/startup.sh’启动tomcat。此时关闭终端。

7.打开ssh终端,tomcat正常提供服务。

经上述步骤验证。在使用“&”字符并列命令是,会开启多个进程。此时直接关闭ssh终端,则会关闭上述的多个进程。

如下图。正常使用“shutdown”命令关闭tomcat的日志输出。

tomcat突然宕机问题解决方案

 

四.解决方案

         1.tomcat启动时,尽量不使用“&”字符并列命令。如果使用了,必须先退出当前终端窗口后,再关闭SSH终端。

         2.tomcat启动使用单命令“startup.sh”。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159394.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • spring 中配置sessionFactory及用法

    spring 中配置sessionFactory及用法spring中配置sessionFactory及用法方法一:1、在Spring的applicationContext.xml中配置bean<!–启用注解注入–><c

  • Kong网关介绍[通俗易懂]

    Kong网关介绍[通俗易懂]传统服务如下左图,通用函数重复使用在多个服务中,系统庞大僵化难以管理,由于会冲击其他服务导致的扩展困难,由于系统限制导致生产率低,如下右图是kong的解决方案kong特点:云原生:平台无关,kong可以在裸机和Kubernetes上运行。动态负载平衡:跨多个上游服务的流量负载均衡。…

  • JS中innerHTML、outerHTML、innerText、outerText的用法与区别

    JS中innerHTML、outerHTML、innerText、outerText的用法与区别1、功能说明:innerHTML设置或获取位于对象起始和结束标签内的HTMLinnerText设置或获取位于对象起始和结束标签内的文本outerHTML设置或获取对象及其内容的HTML形式outerText设置(包括标签)或获取(不包括标签)对象的文本2、示例页面有如下代码:span1span2varinnerHTML=document.getElemen

  • linux下安装apache(httpd-2.4.3版本)各种坑

    linux下安装apache(httpd-2.4.3版本)各种坑

    2020年11月12日
  • Busybox的安装步骤[通俗易懂]

    Busybox的安装步骤[通俗易懂]一、下载busyboxwww.busybox.net/downloads/(busybox-1.17-0.tar/bz2)二、安装:1、修改Makefile文件:第175行交叉编译器CORSS_COMPILE2、makemenuconfig当出现如下错误时的解决办法:make[2]:***[scripts/kconfig/lxdialog/check…

  • leetcode-1830. 使字符串有序的最少操作次数(数位dp+逆元+快速幂+排列)「建议收藏」

    leetcode-1830. 使字符串有序的最少操作次数(数位dp+逆元+快速幂+排列)「建议收藏」给你一个字符串 s (下标从 0 开始)。你需要对 s 执行以下操作直到它变为一个有序字符串:找到 最大下标 i ,使得 1 <= i < s.length 且 s[i] < s[i – 1] 。找到 最大下标 j ,使得 i <= j < s.length 且对于所有在闭区间 [i, j] 之间的 k 都有 s[k] < s[i – 1] 。交换下标为 i – 1​​​​ 和 j​​​​ 处的两个字符。将下标 i 开始的字符串后缀反转。请你返回将字符串变成有序

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号