技巧笔记:20201228 shell 中 tail 引起的 shutdown

项目场景:

昨天遇到的一个现象,发现 tomcat 莫名其妙的 shutdown,发现与 shell 脚本 中 使用 tail 的用法有关


问题描述:

(日志时间不准忽略,系统时间不准)
昨晚23点左右启动的tomcat ,第二天发现应用挂了,catalina.out日志莫名其妙的shutdown了。

26-Dec-2020 12:28:10.922 INFO [main] org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.
26-Dec-2020 12:28:10.923 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
26-Dec-2020 12:28:10.930 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]

原因分析:

tomcat的脚本startup.sh 和 tailf同时被写在了 shell脚本中,由于操作上没注意Xshell窗口一直开着,也没有执行CTRL + C,tailf持续打印日志的进程一直在,相当于ssh连接一直在,然后就去人跑去做验证了,下班后也没管。
下面这个脚本 2种处理方式会造成 tomcat shutdown。
相同的原理:tailf打开的日志继续打印,ssh断开,则同步关闭tomcat的进程,导致shutdown
1、主动关闭Xshell窗口
2、不执行CTRL + C,等Xshell 窗口超时 或 Xshell机器与 tomcat服务器断开网络

cd $JAVAWORKDIR
startup.sh
sleep 5
tailf $TOMCAT_HOME/logs/catalina.out

解决方案:

1、改变人的习惯,注意CTRL + C 进行退出操作
2、改变脚本 屏蔽因为操作人员习惯上的疏忽留下的漏洞隐患

修改前:tailf 或 tail -f 持续打印的状况
修改后:tail -n 100只打印最后 100行;或 直接去掉 tail 打印

cd $JAVAWORKDIR
startup.sh
sleep 5
tail -n 100 $TOMCAT_HOME/logs/catalina.out
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值