昨天的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来測试服务是否有效。非常巧妙的应用!

同理也可做其它服务的监控。

守护进程监控tomcat并自己主动重新启动的更多相关文章

  1. linux shell脚本守护进程监控svn服务

    最近搭建的svn服务不知道什么原因服务总是被关闭(如果你不知道怎么搭建svn可以参考linux下搭建svn版本控制软件),因此用shell脚本实现一个守护进程.用于监控svn服务是否启动,如果服务不在 ...

  2. php等守护进程监控脚本(转载 http://www.9958.pw/post/php_script_scan)

    此脚本用户守护监控进程的执行情况,因为有的时候,我们用各类开发语言做的守护进程可能会因为一些特殊情况被退出,所以此脚本就是为了重启这些进程 代码: #!/bin/bash EMAIL='9958_pw ...

  3. Linux 下Qt实现守护进程实例(转)

     原文地址:Linux守护进程的编程方法(含实例) 作者:lingdxuyan 参考文献 Linux信号列表(zz) Linux 守护进程的编程方法 linux上编写守护进程的例程 Linux下后台守 ...

  4. UNIX环境高级编程 第13章 守护进程

    守护进程daemon是一种生存周期很长的进程.它们通常在系统引导时启动,在系统关闭时终止.守护进程是没有终端的,它们一直在后台运行. 守护进程的特征 在Linux系统中,可以通过命令 ps -efj ...

  5. 生产环境中mysql+keepalive双主模式,keepalive守护进程实现双主切换提供数据库服务

    mysql+keepalive实现浮动地址自动切换,由于keepalive无自带健康检查功能,所以必须自动编写健康检查守护进程(监控DB1和DB2数据库的监控状态,来保证浮动地址双机自动切换.) 一, ...

  6. supervisor使用,配置和安装(包括监控守护进程httpd,keepalived)

    yum -y install supervisor(如果安装不成功,需要更新源,yum -y install epel) 或者: wget --no-check-certificate https:/ ...

  7. python 守护进程,监控进程

    守护进程代码: import time, os import subprocess def run(): while True: taskList = os.popen('tasklist').rea ...

  8. 阿里云自定义监控tomcat进程数

    阿里云提供自定义监控SDK,这有助于我们定制化的根据自身业务来做监控,下面我就根据业务需求来介绍一个简单的自定义监控配置. 阿里提供了2个版本的自定义监控接口:自定义监控SDK(python版) :c ...

  9. Windows下tomcat进程监控批处理程序

    在Windows下tomcat进程监控批处理程序脚本如下: @echo off ::tomcat安装目录 set _tomcatDir=E:\myFiles\apache-tomcat-8.5.31 ...

随机推荐

  1. Windows下搭建基于SSH的Git服务器

    Git客户端安装 客户端要同时安装在远程服务器和自己的电脑上,下载地址:http://msysgit.github.io/ 选择安装组件 :也可以默认选择; 图标组件(Addition icons) ...

  2. 使用Nginx+uWSGI+Django方法部署Django程序(上)

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...

  3. openerp所用QWEB2的调试笔记

    [1] 调式qweb模板时, 可以脱离openerp环境 阅读一下openerp目录 qweb目录中的几个html文件,可以作为起步 在浏览器下, 可以这样运行这些文件 http://127.0.0. ...

  4. attempt to dereference a generic a pointer(转)

    在Linux下的GDB环境中,用p   命令查看一个void   *型的变量的时候,提示为:  "attempt   to   dereference   a   generic   a   ...

  5. EXTJS4自学手册——图形行为(rotate,scale)

    一.旋转图像: { xtype: 'button', text: '旋转的字', handler: function (btn) { Ext.create('Ext.window.Window', { ...

  6. 监听器如何获取Spring配置文件

    我们在做项目的时候,会用到监听器去获取spring的配置文件,然后从中拿出我们需要的bean出来,比如做网站首页,假设商品的后台业务逻辑都做好了,我们需要创建一个监听器,在项目启动时将首页的数据查询出 ...

  7. Python数据处理——绘制函数图形以及数据拟合

    1.多项式拟合 对散点进行多项式拟合并打印出拟合函数以及拟合后的图形import matplotlib.pyplot as pltimport numpy as npx=np.arange(1,17, ...

  8. 在WebService中使用Microsoft.Practices.EnterpriseLibrary.Data配置数据库

    1. 新建WebApplication1项目 1.1 新建—Web—ASP.NET Empty Web Application--WebApplication1 1.2 添加一个WebForm1 2. ...

  9. unity, iOS下画面错乱解法

    unity版本号为5.1.1f1 Personal 在ipod5,系统为iOS7.1上测试.发现下面两种出现画面错乱的问题: 一,退后台在返回前台时画面发生错乱(错乱持续一两秒,然后变为正常).   ...

  10. linux navicat 过期 解决办法

    :~$ cd .navicat:~/.navicat$ rm *.reg:~/.navicat$ rm .update-timestamp:~/.navicat$ rm navicat.crontab ...