背景:

  有一次晚上下班,发完版,刚把电脑合上走到楼下,就接到报警,说是线上有一个tomcat进程不存在了,想着以为是误报,但是还是回去看看了,发现线上确实是刚才发版的项目,进程不存在了,想了想,刚才测试已经通过了的,赶紧查看了下日志,看到如下报错:

18-Jul-2018 19:51:14.064 信息 [Thread-9] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8007"]
18-Jul-2018 19:51:14.115 信息 [Thread-9] org.apache.catalina.core.StandardService.stopInternal Stopping service Catalina
18-Jul-2018 19:51:14.192 警告 [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [erpQposRest] registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
18-Jul-2018 19:51:14.193 警告 [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [erpQposRest] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
18-Jul-2018 19:51:14.193 警告 [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [erpQposRest] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:64)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:745)
18-Jul-2018 19:51:14.199 信息 [Thread-9] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8007"]
18-Jul-2018 19:51:14.201 信息 [Thread-9] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8007"]

 赶紧根据关键字网上翻资料,找到问题所在,因为项目发版用的是shell脚本操作的,所有的项目启动停止都在脚本完成。问题的最终原因是因为,由于有tailf catalina.out,是为了观察项目的tomcat是否正常启动,当时没有对命令进行ctrl +c ,就直接关闭xshell所以控制台一直停留在tailf catalina.out界面。这样直接关闭xshell窗口,会导致该tomcat进程被kill掉。

具体的为什么关闭xshell会kill掉tomcat进程,后面有时间再来研究。

总结:作为运维,凡事线上操作都要小心,不要忽略任何小问题,这样才会保障线上稳定

最新文章

  1. JavaScript的同步与异步
  2. 1 云计算系列之云计算概述和KVM虚拟化简介
  3. 使用 JSONP 实现简单的 SSO 单点登录
  4. mongodb(Index)
  5. Generic Access Profile
  6. Latex 笔记
  7. jsp数据库连接出现乱码
  8. System.Data.SqlClient.SqlError: 备份集中的数据库备份与现有的 'XXX' 数据库不同
  9. iOS8定位问题
  10. java 读入换行
  11. JavaEE(16) - JPA生命周期及监听器
  12. 201521123085 《JAVA程序设计》第6周学习总结
  13. Nginx平滑升级源码分析
  14. RaspberryPi2B使用bcm2835c库控制GPIO
  15. 在SDL工程中让SDL_ttf渲染汉字
  16. v-show v-if 的使用
  17. 网络之XML解析-原生
  18. 使用迭代器遍历List的时候修改List报ConcurrentModificationException异常原因分析
  19. spring boot 服务 正确关闭方式
  20. 从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0的解决方案

热门文章

  1. 在Windows上使用Docker运行.NetCore
  2. Docker进阶之二:Docker内部组件
  3. 记一个 DataBindings遇到的坑,当ComboBox同时绑定DataSource与DataBindings的时候,绑定的元素一定要同名
  4. css3 动画 总结
  5. vuex的用法
  6. CSS文本属性 文本阴影text-shadow 换行 text-overflow
  7. 理清PHP在Linxu下执行时的文件权限
  8. 【Spring Cloud笔记】 断路器-hystrix
  9. 想知道谁是你的最佳用户?基于Redis实现排行榜周期榜与最近N期榜
  10. js实现语音功能