昨天的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. 转:Android推送技术研究

    Android推送技术研究 字数5208 阅读4026 评论5 喜欢35 前言 最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些 ...

  2. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何让不同的PLC程序分线程运行 TC3

    右击Tasks,添加一个新的Task   可以为这个线程设置自定义的扫描周期   然后在项目上右击添加Referenced Task   在TaskSub1上右击添加现有项,把之气写好的PRG程序绑定 ...

  3. FileZilla_Server如何配置

    安装采用默认直接安装.   2.下图直接点OK   进入主界面,如下     3.配置账户 选择 Edit->USERS 开始创建账户 点击ADD 按钮添加账户user1 点OK 后,回到创建账 ...

  4. linux c 获取网卡状态(UP or DOWN)

    源代码例如以下: #include <sys/socket.h> #include <sys/ioctl.h> #include <linux/if.h> #inc ...

  5. 基于python实现的DDoS

    目录 一个简单的网络僵尸程序 一个简单的DOS攻击程序 整合网络僵尸和DoS攻击--DDoS 代码地址如下:http://www.demodashi.com/demo/12002.html 本例子包含 ...

  6. 工作总结 管理NuGet 程序包 中 找不到 npoi 怎么办

    在设置里 勾选 可用程序包源

  7. Java中super的几种使用方法并与this的差别

    1.     子类的构造函数假设要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base" ...

  8. Angular2升级到Angular4

    angular4终于在两天前发布了正式版本,那么怎么升级呢?其实angular2和angular4之间属于平滑过渡,并不像1和2之间颠覆性的重写代码. npm uninstall -g @angula ...

  9. 网页CSS font-size使用em替代px

    px和em都是长度单位,区别是,px的值是固定的,em的值是相对的,并且em会继承父级元素的字体大小. 任意浏览器的默认字体高都是16px.所以未经调整的浏览器都符合: 1em=16px.那么12px ...

  10. 448. Find All Numbers Disappeared in an Array【easy】

    448. Find All Numbers Disappeared in an Array[easy] Given an array of integers where 1 ≤ a[i] ≤ n (n ...