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”。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pycharm控制台乱码问题[通俗易懂]

    Pycharm控制台乱码问题[通俗易懂]Pycharm控制台出现乱码的解决方法

    2022年8月28日
    0
  • SpringIoc 实现原理

    SpringIoc 实现原理什么是SpringIOCspringioc指的是控制反转,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。交由Spring容器统一进行管理,从而实现松耦合“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,…

    2022年6月18日
    21
  • C++stringstream的妙用「建议收藏」

    C++stringstream的妙用「建议收藏」1介绍C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。istringstream类用于执行C++风格的串流的输入操作。ostringstream类用于执行C风格的串流的输出操作。strstream类同时可以支持C风格的串流的输入输出操作。istringstream类是从istre…

    2022年5月9日
    26
  • 结合matlab代码案例解释ICA独立成分分析原理「建议收藏」

    结合matlab代码案例解释ICA独立成分分析原理「建议收藏」目录介绍什么是ICA?对数据进行白化ICA算法ICA特性本分享为脑机学习者Rose整理发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:941473018关于ICA,可以查看Rose小哥之前分享的《ICA独立成分分析去除EEG伪影》以及Scott等大神关于ICA的原理与应用的文献汇总《Scott等大神的33篇ICA独立成分分析论文汇总》。介绍独立分量分析是一…

    2022年5月16日
    31
  • 服务器版dll修复工具,dll修复工具「建议收藏」

    服务器版dll修复工具,dll修复工具「建议收藏」winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游戏手柄,缺少它可能造成部分软件无声音。当你的电脑提示“丢失winmm.dll”或者“没有找到winmm.dll”等类似错误信息。如果sqlite3.dll系统文件丢失、损坏,自行寻找选择适合系统的DLL系统文件,不但麻烦,还得冒着系统异常的风险。无主之地、荣誉勋章等游戏所需的physxcudart_20.Dll下载,解压后…

    2022年6月1日
    178
  • 为什么投屏找不到设备(投屏电视显示无法访问服务器)

    现在液晶电视价格越来越便宜,很少的钱就可以买一台60寸以上的电视,那么使用电脑的朋友一定想要把画面投屏到电视上,用于玩游戏、看电影吧!Win10就有非常好用的投屏功能,很多朋友可能不知道如何操作,这里小编和大家分享下具体步骤:Win10投屏电视步骤如下:(以小米电视为例)1、首先将电脑连接无线WIFI。2、将电视也连接在同一个无线WIFI网络下。3、进入电视应用中,选择“无线显示”功能。(不同的型…

    2022年4月15日
    752

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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