守护进程监控tomcat并自己主动重新启动
昨天的tomcat问题。一天挂了3,4回,受不了了决定写个监控tomcat进程并自己主动重新启动的脚本!
在网上查资料。主要分为两类:一类是定时重新启动tomcat,这当然不是我须要的。还有一类是监控并重新启动。只是也有好几个版本号。我综合比較后(主要是这篇http://hi.baidu.com/tedzhangzhe/item/4afd87aa1cf2d1f215329b8a),删除了些不须要的内容,并将代码改动例如以下:
###########################################
# author
# date 2014/05/19
# update 2014/05/19
# Automatic detection and restart tomcat
############################################ echo ========================================
date
cd /usr/local/share/tomcat7/bin/script
rm -f main.jsp
wget -T 10 -t 3 -q http://10.0.210.100:8080/pmonitor/main.jsp
if [ ! -e main.jsp ]; then
echo "restart tomcat."
export JAVA_HOME=/usr/local/java/jdk1.6.0_37 /usr/local/share/tomcat7/bin/shutdown.sh
sleep 10
kill -9 `ps aux|grep "/usr/local/share/tomcat7"|grep -v grep|awk '{prin t $2}'`
sleep 5
/usr/local/share/tomcat7/bin/startup.sh
else
echo "checked."
fi
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。又自己主动启动了,成功。
总结一下,这篇代码的方法不是直接监控tomcatport,而是通过wget传输文件来測试。我们都知道wget是能够走http协议的,正好能够经过tomcat来測试服务是否有效。非常巧妙的应用!
同理也可做其它服务的监控。
最新文章
- 返水bug-霸世
- the usage of linux command ";expect";
- lnmp memcache出问题
- VirtualBox命令更改虚拟硬盘空间
- objective-C学习笔记(十一)类别和扩展
- 一个轻client,多语言支持,去中心化,自己主动负载,可扩展的实时数据写服务的实现方案讨论
- double 型变量的输入输出标准格式
- 201521123010 《Java程序设计》第12周学习总结
- Problem : (1.2.1) Text Reverse
- 洛谷P2611 信息传递
- video 铺满父元素(object-fit: fill;)
- JMeter学习(十八)JMeter处理Cookie与Session(转载)
- MySQL 5.7 GA 新特性
- [Err] ORA-00911: 无效字符
- 用 Vue 改造 Bootstrap,渐进提升项目框架
- HDFS分布式集群安装
- Nodejs下express+ejs模板的搭建
- maven-resources-plugin使用
- Codeforces 156B Suspects——————【逻辑判断】
- java应用高内存占用