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

引言

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

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

g-Jack CSDN认证博客专家 Spring Java Linux
硕士毕业于北京交通大学软件工程专业,拥有5年java工作经验,热爱编程,乐于分享,喜欢研究架构方向的优化,和大数据高并发架构的设计。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页