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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql是什么类型数据库_MySQL是一种

    mysql是什么类型数据库_MySQL是一种在学习MySQL之前,首先需要了解数据库和SQL。如果您已经知道数据库和SQL,那么可以直接跳转到下一章节的学习。1.数据库简介当您想收听最喜欢的歌曲时,可以从智能手机上打开播放列表。在这种情

    2022年8月1日
    6
  • 上海java培训哪家教育机构比较好_上海it培训机构排名前十

    上海java培训哪家教育机构比较好_上海it培训机构排名前十学习Java编程不在是校内学生们的专利了,随着职场上竞争越来越激烈,毫无基础的或想要转行的求职者对于学习Java的积极性也是越来越高,因此,市面上涌现了大批的成人Java培训机构,为了不让大家纠结,小编花费了一周时间给大家专门整理了上海Java培训机构排名榜单,主要从口碑,师资,专一性,就业率等多方面得出的上海Java培训机构排名,仅供正在选择Java培训机构的小伙们参考。1.上海动力节点评价:动力节点大家学Java的话肯定也都听说过,单科教学,一直是秉承着从学员角度,全心全意保障学员利益.

    2022年10月3日
    2
  • 设计模式(二十一)状态模式

    设计模式(二十一)状态模式

    2021年7月7日
    74
  • C–C语言中volatile关键字的作用[通俗易懂]

    C–C语言中volatile关键字的作用[通俗易懂]转载:http://blog.csdn.net/tigerjibo/article/details/7427366一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高

    2022年5月8日
    41
  • 设计模式 – 出厂模式(factory pattern) 详细说明

    设计模式 – 出厂模式(factory pattern) 详细说明

    2022年1月13日
    52
  • telnet 1521端口不通

    telnet 1521端口不通一:场景:本机telnet虚拟机oracle数据库1521不通二:解决方法1:首先保证双方都ping通,虚拟机本地1521telnet是通的2:虚拟机防火墙设置如下:新建规则选择端口选择TCP输入端口号1521,后面一直下一步就OK了…

    2022年6月10日
    153

发表回复

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

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