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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 通过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日志并进行多维度分析。
目录
相关文章
|
14天前
|
Java 应用服务中间件 Windows
windows服务器重装系统之后,Tomcat服务如何恢复?
windows服务器重装系统之后,Tomcat服务如何恢复?
30 10
|
2月前
|
Ubuntu Linux Shell
在Linux中,如何使用shell脚本判断某个服务是否正在运行?
在Linux中,如何使用shell脚本判断某个服务是否正在运行?
|
3月前
|
监控 Java
JVM内存问题之使用jstat命令查看GC堆百分比占比情况,应该使用哪个选项
JVM内存问题之使用jstat命令查看GC堆百分比占比情况,应该使用哪个选项
|
3月前
|
Java
JVM内存问题之jstack命令查看JVM线程快照如何解决
JVM内存问题之jstack命令查看JVM线程快照如何解决
|
3月前
|
开发者 Java
JVM内存问题之top命令的物理内存信息中,'used'和'free','avail Mem'分别表示什么
JVM内存问题之top命令的物理内存信息中,'used'和'free','avail Mem'分别表示什么
|
3月前
|
监控 Java 运维
开发与运维收集问题之jstat命令查看JVM垃圾回收情况如何解决
开发与运维收集问题之jstat命令查看JVM垃圾回收情况如何解决
25 1
|
2月前
|
Arthas Prometheus 监控
使用JDK自带工具调优JVM的常用命令
使用JDK自带工具调优JVM的常用命令
|
3月前
|
前端开发 Java 应用服务中间件
Tomcat 与 JVM 中classpath的理解和设置总结
Tomcat 与 JVM 中classpath的理解和设置总结
117 0
|
4月前
|
IDE Java 应用服务中间件
Tomcat部署的服务有部分中文是乱码如何处理
【6月更文挑战第9天】Tomcat部署的服务有部分中文是乱码如何处理
110 5
|
4月前
|
Java 应用服务中间件 Linux
Tomcat 调优及 JVM 参数优化
Tomcat 调优及 JVM 参数优化