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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sgl520lxl/article/details/60880375

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菜鸟,本文目的只是记录自己工作中遇到的一些问题,以便以后遇到同样的错误,可以有迹可循。哈哈,勿喷!

猜你喜欢

转载自blog.csdn.net/sgl520lxl/article/details/60880375