[置顶] linux系统tomcat应为被定时任务脚本监控自动部署,服务器重启导致同一个tomcat出现很多进程,kill -9杀死又出现等一系列问题解决。
2017-03-08 20:46
961 查看
linux系统tomcat应为被定时任务脚本监控自动部署,服务器重启导致同一个tomcat出现很多进程,kill -9杀死又出现等一系列问题解决。
#ps -ef|grep tomcat查看tomcat进程,同一个tomcat有很多一样的进程,kill -9杀完过一会又会出现,且pid随时发生改变。
我首先想到第一时间去tomcat的bin目录下去执行#./shutdown命令想正常关闭tomcat,也无法关闭。
于是去谷歌各种找方法,都试过一遍,但是大部分还是让我kill -9 命令杀父进程,都是没法有效解决我的问题的。还有的是让我修改[b]bin/catalina.sh文件shutdown.sh的文件加一个pid,关闭的时候直接通过配置的pid去关tomcat,但是我的tomcat工程是通过脚本文件自动循环部署工程的,如果把pid写死的话,肯定会影响以后的项目部署,于是放弃了这个方法(ps:这方法我直接没试,不不知道行不行);[/b]
搞了半天,很头疼,我决定先去把定时任务停了,防止脚本每半个小时自动执行检测部署(如果检测到域名无法访问项目,会自动重启tomcat)任务。
查看定时任务命令:crontab -l
修改定时任务命令:[b]crontab -e[/b]
如下:
[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菜鸟,本文目的只是记录自己工作中遇到的一些问题,以便以后遇到同样的错误,可以有迹可循。哈哈,勿喷!
#ps -ef|grep tomcat查看tomcat进程,同一个tomcat有很多一样的进程,kill -9杀完过一会又会出现,且pid随时发生改变。
我首先想到第一时间去tomcat的bin目录下去执行#./shutdown命令想正常关闭tomcat,也无法关闭。
于是去谷歌各种找方法,都试过一遍,但是大部分还是让我kill -9 命令杀父进程,都是没法有效解决我的问题的。还有的是让我修改[b]bin/catalina.sh文件shutdown.sh的文件加一个pid,关闭的时候直接通过配置的pid去关tomcat,但是我的tomcat工程是通过脚本文件自动循环部署工程的,如果把pid写死的话,肯定会影响以后的项目部署,于是放弃了这个方法(ps:这方法我直接没试,不不知道行不行);[/b]
搞了半天,很头疼,我决定先去把定时任务停了,防止脚本每半个小时自动执行检测部署(如果检测到域名无法访问项目,会自动重启tomcat)任务。
查看定时任务命令:crontab -l
修改定时任务命令:[b]crontab -e[/b]
如下:
[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菜鸟,本文目的只是记录自己工作中遇到的一些问题,以便以后遇到同样的错误,可以有迹可循。哈哈,勿喷!
相关文章推荐
- CentOS下如何查看并杀死僵尸进程及kill后出现问题的解决办法
- 一个监控Squid运行进程数并自动重启的简洁Shell脚本分享
- 关于tomcat服务器部署,页面报404/500错误,myeclipse异常关闭 导致tomcat 6.0 无法重启 的问题
- 用Shell脚本定时监控Linux下的进程状态并自动重启
- 一个监控Squid运行进程数并自动重启的简洁Shell脚本分享
- javaEE异常总结——更换工作空间向同一个tomcat上部署同一个项目时出现问题解决
- Linux下安装MyEclipse和Tomcat服务器详解,以及我安装过程中所出现的问题以及解决办法,并实现一个web小程序
- linux 持续构建(自动部署) 重启动tomcat或进程的脚本
- 部署Java Web程序到Tomcat服务器上出现的log4j问题解决
- linux shell脚本定时3分钟监控Tomcat,自动重启
- 一个服务器部署多个tomcat出现端口占用问题
- iis6应用程序池被自动禁用问题 Service Unavailable 应用程序池 'DefaultAppPool' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误。应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为
- 解决spring定时任务执行两次和tomcat部署缓慢的问题
- 解决tomcat 热部署问题,避免每次修改某一个小部分代码就得重启一次项目。浪费时间
- Tomcat服务器热启动,解决部署源码时每次手动重启Tomcat问题
- 解决eclipse+tomcat开发时候修改配置文件自动重启服务器问题
- 定时重启tomcat脚本导致的乱码问题
- spring定时任务执行两次及tomcat部署缓慢问题的解决方法
- 提交代码到svn时服务器重启导致svn无法更新问题解决办法
- python脚本自动监视tomcat进程,如果崩溃就自动重启