linux系统tomcat应为被定时任务脚本监控自动部署,服务器重启导致同一个tomcat出现很多进程,kill -9杀死又出现等一系列问题解决。

    xiaoxiao2021-03-25  128

    linux系统tomcat应为被定时任务脚本监控自动部署,服务器重启导致同一个tomcat出现很多进程,kill -9杀死又出现等一系列问题解决。

    #ps -ef|grep tomcat查看tomcat进程,同一个tomcat有很多一样的进程,kill -9杀完过一会又会出现,且pid随时发生改变。

    我首先想到第一时间去tomcat的bin目录下去执行#./shutdown命令想正常关闭tomcat,也无法关闭。

    于是去谷歌各种找方法,都试过一遍,但是大部分还是让我kill  -9 命令杀父进程,都是没法有效解决我的问题的。还有的是让我修改bin/catalina.sh文件shutdown.sh的文件加一个pid,关闭的时候直接通过配置的pid去关tomcat,但是我的tomcat工程是通过脚本文件自动循环部署工程的,如果把pid写死的话,肯定会影响以后的项目部署,于是放弃了这个方法(ps:这方法我直接没试,不不知道行不行);

    搞了半天,很头疼,我决定先去把定时任务停了,防止脚本每半个小时自动执行检测部署(如果检测到域名无法访问项目,会自动重启tomcat)任务

    查看定时任务命令:crontab -l

    修改定时任务命令:crontab -e

    如下:

    [root@UbitechLinux31 bin]# crontab -l #*/30 * * * * /ttcShell/refreshRelease/refresh.sh >>/ttcShell/refreshRelease/refresh.txt 2>&1 #*/30 * * * * /usr/tomcat_pool/tomcat_ttc_2/refreshMySql/refresh.sh 2>>/usr/tomcat_pool/tomcat_ttc_2/refreshMySql/refresh.txt #29 17 * * * /home/refresh/refresh.sh >>/home/refresh/refresh.txt 2>&1 20 01 * * * /data/ttcDataBackup.sh > /data/ttcDataBackup.txt 2>&1

    定时任务已经被我注释掉了(最好再执行下让修改定时任务重启生效命令:# /etc/init.d/crond restart),附上可能会用到的查看定时任务日志的命令:#vi  /var/log/cron

    停了之后我半个小时看日志,的确没有脚本执行日志了。

    可tomcat的日志里面去一看,照样在执行启动任务,跟她吗死循环一样,蛋疼。

    原来是应为虽然定时任务已经关了,但是应为linux系统进程中还有那个监控脚本的进程在!!

    #ps -ef|grep  ttcShell (你脚本名字)

    查看这个脚本相关的所有进程,全部kill -9 加端口杀掉

    然后再去tomcat目录启动项目

    (之前是没发现有脚本进程,下面的文章是之前的解决方案,并不完善,上面这几行是补充)

    现在的情况就是杀也杀不死,关也关不掉,而且定时任务脚本都已经注释掉了。

    于是继续谷歌百度找方法,找到一个很有效的方法可以杀死全部tomcat进程

    杀掉所有tomcat进程(这里的路径视情况而定,ps -ef|grep tomcat  是可以看到路径的)  killall -9 /usr/java/jdk1.8.0_112/jre/bin/java

    执行了过后,ps -ef | grep   tomcat 查看tomcat进程果然都没了,这个命令果然牛逼!!!

    心里相当开心,以为只要关掉了那些令人恶心的无限出现tomcat进程就好办了,然后事实证明我还是太年轻!!

    既然tomcat能关了,那么只要再去启动下,项目应该就能访问了!

    于是去到/bin  目录下执行#./startup.sh 命令

    结果她妈的蛋疼了,出现各种错。。。

    打开tomcat的日志/log里面的catalina.2017-03-08.log文件查看错误信息

    又是一痛谷歌百度,还是没法解决,不过算是知道了,问题出现的重点是tomcat启动The session manager failed to start

    好像跟session有关,于是,自己跑去到tomcat目录下的/confg/work目录下把Catalina文件删除了。

    然后去/bin目录下启动tomcat!!

    ok,接着去tail  -f  查看tomcat打印日志。没有报错!然后访问项目,正常!!!!   万幸,解决了。

    我猜想可能是之前的无限次进程卡死导致Catalina文件有问题,会影响到tomcat启动等等以及上面抱的session相关的问题吧,只要删掉那两个文件,然后重新启动tomcat又会生成新的Catalina的!

    本人也是linux菜鸟,本文目的只是记录自己工作中遇到的一些问题,以便以后遇到同样的错误,可以有迹可循。哈哈,勿喷!

    转载请注明原文地址: https://ju.6miu.com/read-6145.html

    最新回复(0)