<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    如何監(jiān)控tomcat進程并殺死它

            我不知道為什么在linux上有時候./shutdown.sh不能關閉掉tomcat,我估計是因為有其它的進程在使用它,于是每次都只能手動的kill -9去殺掉他,后來我嫌麻煩于是自己寫了個監(jiān)控PID的腳本,然后用JAVA程序去訪問我的頁面,如果異常或者超時,我就調(diào)用這個監(jiān)控去殺掉tomcat,并重新啟動它
            首先我要準備一個腳本叫做killtomcat.sh,哈哈,監(jiān)控的原理很簡單通過ps -ef|grep 來實現(xiàn)
     1#!/bin/bash
     2export JAVA_HOME=/local/akazam/servers/java
     3export CATALINA_HOME=/local/akazam/servers/tomcat
     4export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/td.jar:$JAVA_HOME/jre/lib/rt.jar:$CATALINA_HOME/lib/servlet-api:$CATALINA_HOME/lib/catalina-ant.jar:$CATALINA_HOME/lib/catalina.jar:$CATALINA_HOME/lib/annotations-api.jar:$CATALINA_HOME/lib/tomcat-coyote.jar:$CATALINA_HOME/lib/tomcat-dbcp.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/commons-pool.jar:$CATALINA_HOME/lib/common-dbcp.jar:$CATALINA_HOME/lib/catalina-tribes:$CATALINA_HOME/lib/catalina-ha.jar:.
     5export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$CATALINA_HOME/bin:$PATH
     6TOMCAT_PATH=/local/akazam/servers/tomcat/bin
     7if [ $# -eq 0 ]
     8    then
     9        echo "ERROR:Usage: process argument" 1>&2
    10        echo "eg:If you want to restart tomcat you can enter ./restart.sh tomcat!" 1>&2
    11        exit 1
    12fi
    13path=$1
    14set $(ps -ef|grep $path)
    15pid=$2
    16flaggrep=$8
    17echo "tomcat pid : $pid,flag : $flaggrep"
    18
    19if [ "$flaggrep" = "grep" -"$flaggrep" = "/bin/bash" ]
    20then
    21 echo "no thread start"
    22else
    23#kill tomcat
    24kill -9 $pid
    25sleep 3
    26echo "killed thread"
    27fi
    28#start tomcat
    29cd $TOMCAT_PATH
    30./startup.sh
    31echo "tomcat restart!" 
            接下來就要寫個JAVA類來監(jiān)控了
      1package com.akazam.monitor;
      2
      3import java.io.BufferedReader;
      4import java.io.File;
      5import java.io.IOException;
      6import java.io.InputStreamReader;
      7import java.net.HttpURLConnection;
      8import java.net.URL;
      9import java.util.Date;
     10
     11public class MonitorTomcat {
     12    public long getLoadMS(String url){
     13        long time1=System.currentTimeMillis();
     14        
     15        int i=0;
     16         // 帶參數(shù)目錄名方式運行 dir 命令
     17        Runtime runtime = Runtime.getRuntime();
     18        String classDir = this.getClass().getResource("/").getPath();
     19        String command= classDir+"killtomcat.sh tomcat/";
     20        try 
     21            URL target = new URL(url); 
     22            HttpURLConnection conn = (HttpURLConnection) target.openConnection();  
     23            conn.setRequestMethod("GET");  
     24            conn.connect(); 
     25            BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));  
     26            while (in.readLine() != null){
     27                i++;
     28            }
      
     29        }
    catch(Exception e){  
     30            //重啟tomcat
     31            try {
     32                Process process = runtime.exec(new String[] {"/bin/bash","killtomcat.sh","tomcat/"},null,new File(classDir));
     33                System.out.println(e.getMessage()+"\r\nRun command is:"+command);
     34                if(process!=null)
     35                {
     36                    BufferedReader in = new BufferedReader(new InputStreamReader(
     37                              process.getInputStream()));
     38                    String line;
     39                    while ((line = in.readLine()) != null{
     40                        System.out.println(line+"\r\n");
     41                    }

     42                     try {
     43
     44                                   if (process.waitFor() != 0{
     45
     46                                       System.err.println("exit value = " + process.exitValue());
     47
     48                                   }
     
     49
     50                                 }

     51
     52                                 catch (InterruptedException ec) {  
     53
     54                                    System.err.println(ec);
     55
     56                                }

     57
     58
     59                            
     60                }

     61                else return -1;
     62            }
     catch (IOException e1) {
     63                // TODO Auto-generated catch block
     64                //e1.printStackTrace();
     65                System.out.println(e1.getMessage()+"\r\n");
     66            }

     67            
     68        }
      
     69        long time2 = new Date().getTime();  
     70        long result = time2-time1;
     71        if(result>60000)
     72        {
     73            //重啟tomcat
     74            try {
     75                
     76                Process process = runtime.exec(new String[] {"/bin/bash","killtomcat.sh","tomcat/"},null,new File(classDir));
     77                if(process!=null)
     78                {
     79                    BufferedReader in = new BufferedReader(new InputStreamReader(
     80                              process.getInputStream()));
     81                            String line;
     82                            try {
     83                                while ((line = in.readLine()) != null{
     84                                 System.out.println(line+"\r\n");
     85                                }

     86                                 try {
     87
     88                                       if (process.waitFor() != 0{
     89
     90                                           System.err.println("exit value = " + process.exitValue());
     91
     92                                       }
     
     93
     94                                     }

     95
     96                                     catch (InterruptedException ec) {  
     97
     98                                        System.err.println(ec);
     99                                        System.out.println(ec.getMessage()+"\r\n");
    100                                    }

    101
    102                            }
     catch (IOException e) {
    103                                // TODO Auto-generated catch block
    104                                e.printStackTrace();
    105                            }

    106                }

    107                else return -1;
    108            }
     catch (IOException e) {
    109                // TODO Auto-generated catch block
    110                  System.out.println(e.getMessage()+"\r\n");
    111            }

    112        
    113        }

    114    
    115        
    116        return result;
    117    }

    118    public static void main(Stringstrings)
    119    {
    120        if(strings.length>0)
    121        {
    122            String url = strings[0];
    123            long ts = new MonitorTomcat().getLoadMS(url);
    124            if(ts==-1) System.out.println("Comman exec Error!");
    125            else System.out.println("Load Page cost :"+ts);
    126        }

    127    }

    128}

    129




    posted on 2011-03-17 09:41 Cloud kensin 閱讀(1696) 評論(0)  編輯  收藏 所屬分類: JavaLinux

    <2011年3月>
    272812345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統(tǒng)計

    常用鏈接

    留言簿(4)

    隨筆分類

    相冊

    相冊

    搜索

    最新評論

    主站蜘蛛池模板: 亚洲国产av一区二区三区| 18未年禁止免费观看| 免费无遮挡无码视频网站| 久久亚洲精品成人综合| 国产自国产自愉自愉免费24区| 国产亚洲精品AA片在线观看不加载| 一级视频在线免费观看| 自拍偷自拍亚洲精品情侣| 99视频在线观看免费| 亚洲精品在线观看视频| 8x8×在线永久免费视频| 亚洲国产成人久久99精品| 一个人免费观看www视频在线| 亚洲熟女综合色一区二区三区| 成年女人喷潮毛片免费播放| 亚洲AV无码成人精品区日韩| 国产乱子伦精品免费女 | 亚洲码和欧洲码一码二码三码 | 亚洲精品无码久久久久| 免费观看在线禁片| 亚洲精品视频在线免费| 无码中文在线二区免费| 另类专区另类专区亚洲| 国产国拍亚洲精品mv在线观看| 亚洲免费视频播放| 最新亚洲人成无码网站| 久久综合图区亚洲综合图区| 日韩一区二区a片免费观看| 麻豆va在线精品免费播放| 亚洲成a人片在线观看无码| 曰批视频免费30分钟成人| 美女被羞羞网站免费下载| 国产AV无码专区亚洲AVJULIA| 69堂人成无码免费视频果冻传媒| 怡红院亚洲红怡院在线观看| 亚洲AV综合色一区二区三区| 成人看的午夜免费毛片| 91在线免费视频| 亚洲精品无AMM毛片| 国产亚洲综合色就色| 热久久精品免费视频|