通过shell的&命令执行“./startup.sh & tail -f ../logs/catalina.out”时造成tomcat的所属的jvm关闭并且对于的服务挂掉了

简介: 通过shell的&命令执行“./startup.sh & tail -f ../logs/catalina.out”时造成tomcat的所属的jvm关闭并且对于的服务挂掉了

引言


前两天有个显示系统最近升级完成以后,每天晚上tomcat自动shutdown, 非常奇怪的一个问题,因为系统晚上有很多定时任务需要执行,这就导致很多数据统计都错了,并且会影响第二天的使用, 连续两天出现这样的情况,第一次,正好是我们晚上升级系统,所以假定认为使我们升级导致的,但是第二天我们 并没有更新代码,系统仍然down掉了,这就非常严重了,于是,我接入了排查。先看一下日志:

20200619143705366.png

刚开始看到这个日志的时候,我们全部注意力都被上面的警告吸引,于是,认为是数据库连接池有问题,在检查了项目中的相关配置和数据库的配置以后, 发现这不应该是造成tomcat down掉的原因。


最后,我注意到了最后几行日志,发现了tomcat 执行了 stopping ProtocolHandler。


最后,查找了很多资料,发现竟然是前天我们运维新上了一个重启脚本,并且在脚本中增加了查看tomcat日志的命令,也就是在一个shell脚本中执行./startup.sh后,紧接着执行了tail -f ../logs/catalina.out。这样我们在重启项目以后,就可以直接查看启动日志了。


那么 什么操作可以发现这个问题呢:


1、执行 ./startup.sh & tail -f ../logs/catalina.out


2、直接关掉shell窗口,


注意:如果你先执行了ctrl+c,然后将xshell窗口关掉,就不会出现这个问题。


找到这个原因后,我回想了一下,出现问题的操作,就是因为我在下班之前,执行了重启脚本,然后直接关闭电脑走了,然后在我刚关闭电脑,断开xshell窗口,系统就挂了。。。。


具体细节,可以参考下面文章:


https://blog.csdn.net/weixin_40654252/article/details/84108500


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
7天前
|
Arthas 监控 Java
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
270 2
|
7天前
|
应用服务中间件
jeecgboot开发环境服务启动刷新没问题,部署到tomcat,F5刷新或者浏览器刷新,会出现404
jeecgboot开发环境服务启动刷新没问题,部署到tomcat,F5刷新或者浏览器刷新,会出现404
10 0
|
7天前
|
应用服务中间件
今日分享记录:WIN10中如何将tomcat注册到Server服务中
今日分享记录:WIN10中如何将tomcat注册到Server服务中
65 1
|
7天前
|
监控 Java 应用服务中间件
【Linux】Web服务之Tomcat服务
【Linux】Web服务之Tomcat服务
43 0
|
7天前
原生表格纵向滚动条
原生表格纵向滚动条
|
6月前
|
jenkins Java Shell
Jenkins 打包shell出现gradle命令不存在,jvm内存溢出
Jenkins 打包shell出现gradle命令不存在,jvm内存溢出
62 4
|
6月前
|
算法 Java 编译器
JVM常用命令整理
JVM常用命令整理
89 0
|
7月前
|
应用服务中间件 Linux Windows
一台tomcat如何部署多个端口不同的服务?
复制tomcat下webapps文件夹为webapps1 , webapps2 (文件名称无要求 , 需要部署N个项目就复制N-1个文件夹 , 比如部署三个项目 , 再复制两个webapps就行 , 以此类推)
80 0
|
7月前
|
Java Unix 应用服务中间件
tomcat 端口 8005 被 windows 系统服务占用导致启动闪退的问题
tomcat 端口 8005 被 windows 系统服务占用导致启动闪退的问题
56 0
|
7天前
|
XML Java 应用服务中间件
Tomcat_servlet部署、编译、配置、打包
Tomcat_servlet部署、编译、配置、打包
23 0