-
yangqh 数据老手Lv5
发表于2020-2-21 18:54
楼主
问题情况:虚拟机+linux+tomcat,有时候tomcat进程会莫名其妙自己退出,百思不得其解,百度上似乎也有不少小伙伴遇到过这种问题,但原因未知。解决方案:
监控tomcat进程是否存在,不存在则重启。脚本如下:
复制代码1、将代码复制到monitor.sh的文档中,并放入usr/local/share/tomcat7/bin中(路径是自己选的,若修 改路径,将代码中相关内容替换为新路径就行了)。
2、sudo chmod a+x monitor.sh加权限。
3、sudo crontab -e,在文档末尾添加*/2 * * * * /usr/local/share/tomcat7/bin/monitor.sh,意思是 全天范围内每2分钟运行一次这个脚本。
其中,我明明在.bashrc文件中设置过了JAVA_HOME环境变量,可是运行时还是报错,提示Neither the JAVA_HOME nor the JRE_HOME environment variable is defined,所以不得已在代码中加入了export JAVA_HOME=/usr/local/java/jdk1.6.0_37又定义了一遍。
测试环节:人工关闭tomcat后,2分钟后ps -ef |grep tomcat,又自动启动了,成功。 总结一下,这篇代码的方法不是直接监控tomcat端口,而是通过wget传输文件来测试,我们都知道wget是 可以走http协议的,正好可以经过tomcat来测试服务是否有效,很巧妙的应用!同理也可做其他服务的监 控。
监控tomcat进程是否存在,不存在则重启。脚本如下:
- echo ========================================
- date
- cd /wszb/irpt_new/apache-tomcat-6.0.45/bin/script
- rm -f index.jsp
- wget -T 10 -t 3 -q http://175.19.186.26:8080/irpt/i/oem/wsb/index.jsp
- if [ ! -e index.jsp ]; then
- echo "restart tomcat."
- export JAVA_HOME=/wszb/irpt_new/jdk1.6.0_45
- /wszb/irpt_new/apache-tomcat-6.0.45/bin/shutdown.sh
- sleep 10
- kill -9 `ps aux|grep "/wszb/irpt_new/apache-tomcat-6.0.45"|grep -v grep|awk
- '{print $2}'`
- sleep 5
- /wszb/irpt_new/apache-tomcat-6.0.45/bin/startup.sh
- else
- echo "checked."
- fi
2、sudo chmod a+x monitor.sh加权限。
3、sudo crontab -e,在文档末尾添加*/2 * * * * /usr/local/share/tomcat7/bin/monitor.sh,意思是 全天范围内每2分钟运行一次这个脚本。
其中,我明明在.bashrc文件中设置过了JAVA_HOME环境变量,可是运行时还是报错,提示Neither the JAVA_HOME nor the JRE_HOME environment variable is defined,所以不得已在代码中加入了export JAVA_HOME=/usr/local/java/jdk1.6.0_37又定义了一遍。
测试环节:人工关闭tomcat后,2分钟后ps -ef |grep tomcat,又自动启动了,成功。 总结一下,这篇代码的方法不是直接监控tomcat端口,而是通过wget传输文件来测试,我们都知道wget是 可以走http协议的,正好可以经过tomcat来测试服务是否有效,很巧妙的应用!同理也可做其他服务的监 控。