精华内容
下载资源
问答
  • tomcat宕机自动重启

    千次阅读 2018-02-12 11:06:53
    不多说了 直接上代码 有问题的 欢迎评论交流package com.pzx.tomcat;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net....

    不多说了 直接上代码  有问题的   欢迎评论交流

    package com.pzx.tomcat;

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.Date;
    import java.util.Properties;

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;


    /**
     * @describe:TomcatMonitor.java
     *
     * @date 2018/02/01
     * @author pzx
     */
    public class TomcatMonitor implements Runnable {

     
    // private static final Logger logger = LoggerFactory.getLogger(TomcatMonitor.class.getName());
     
     String start = ""; // 系统命令 启动
     String stop = ""; // 系统命令 关闭
     String killJava = ""; // 强制关闭java的命令
     String testHttp = ""; // 测试连接地址
     int testIntervalTime = 1;// 测试连接间隔时间,单位为秒
     int waitIntervalTime = 2; // 等待测试间隔时间,单位为秒
     int testTotalCount = 5; // 测试连接总次数

     Thread thread = null;

     public TomcatMonitor() {
      InputStream in = TomcatMonitor.class.getResourceAsStream("config.properties");
      Properties p = new Properties();
      try {
       p.load(in);
       stop = p.getProperty("stop");
       start = p.getProperty("start");
       killJava=p.getProperty("killJava");
       testHttp = p.getProperty("testHttp");
       testIntervalTime = Integer.parseInt(p.getProperty("testIntervalTime"));
       waitIntervalTime = Integer.parseInt(p.getProperty("waitIntervalTime"));
       testTotalCount = Integer.parseInt(p.getProperty("testTotalCount"));
      } catch (Exception e) {
       e.printStackTrace();
      }

      System.out.println("*******************初始化成功!*******************");

      thread = new Thread(this);
      thread.start();
     }

     public void run() {
      System.out.println("正在监控中...");
    //   logger.debug("正在监控中...");
      int testCount = 0;
      while (true) {
       testCount = 0;
       testCount++;
       boolean isrun = test();
       System.out.println("正在启动测试连接,尝试连接次数为:" + testCount + ",结果为:" + (isrun == false ? "失败." : "成功!")+"监控时间为:"+new Date());
       while (!isrun) {
        if (testCount >= testTotalCount)
         break;
        try {
         thread.sleep(testIntervalTime * 1000);
        } catch (InterruptedException e) {
         e.printStackTrace();
        }
        testCount++;
        System.out.println("正在启动测试连接,尝试连接次数为:" + testCount + ",结果为:" + (isrun == false ? "失败." : "成功!")+"监控时间为:"+new Date());
        isrun = test();
       }

       if (!isrun) {
        try {
         System.out.println("测试连接失败,正在重启tomcat");
         System.out.println("开始停止tomcat");
         // 关闭tomcat服务
         Process proc = Runtime.getRuntime().exec(stop);
    //     // 关闭后线程沉睡
         thread.sleep(20000);
         //强制关闭java.exe(正式环境关闭tomcat很长时间黑窗口才关闭 强制杀掉)
         try {
          System.out.println("开始强制杀进程java.exe");
          Process procJava = Runtime.getRuntime().exec(killJava);
           //强制杀线程后沉睡
          thread.sleep(5000);
         } catch (Exception e) {
          //强制杀线程有异常不处理
          System.out.println("强制杀进程java.exe异常");
         }
         System.out.println("开始启动tomcat");
         // 启动tomcat服务
         Process p = Runtime.getRuntime().exec(start);
         System.out.println("重启tomcat成功");
         thread.sleep(30000);
         //杀掉每次执行命令的黑窗口,默认是不关掉的 不杀的话 会开无限个cmd窗口
         killProcess();
        } catch (Exception e) {
         e.printStackTrace();
         System.out.println("重启tomcat异常,请查看先关错误信息。。。。。");
        }
       }

       try {
        thread.sleep(waitIntervalTime * 1000);
       } catch (InterruptedException e) {
        e.printStackTrace();
       }

       isrun = test();
      }
     }

     public boolean test() {

      URL url = null;
      try {
       url = new URL(testHttp);
      } catch (MalformedURLException e) {
       e.printStackTrace();
      }
      try {
       URLConnection urlConn = url.openConnection();
       urlConn.setReadTimeout(10000);
       BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); // 实例化输入流,并获取网页代码
       String s;
       while ((s = reader.readLine()) != null) {
        return true;
       }
      } catch (Exception e) {
       return false;
      }
      return false;
     }

     public static void main(String[] args) throws Exception {
      TomcatMonitor tm = new TomcatMonitor();
     }

     //关闭cmd窗口
     public static void killProcess() {
      Runtime rt = Runtime.getRuntime();
      Process p = null;
      try {
       rt.exec("cmd.exe /C start wmic process where name='cmd.exe' call terminate");
      } catch (IOException e) {
       e.printStackTrace();
      }
     }

    }

    配置文件如下:

    #系统命令 启动   
    start=cmd /c start D:\\tomcat-standard\\bin\\startup.bat
    #start=cmd /c start D:\\mh_qianyi\\tomcat8-minhang\\tomcat8-minhang\\bin\\startup.bat
     
    #关闭 
    #stop=cmd /c start D:\\mh_qianyi\\tomcat8-minhang\\tomcat8-minhang\\bin\\shutdown.bat
    stop=cmd /c start D:\\tomcat-standard\\bin\\shutdown.bat

    #强制关闭java的命令
    killJava=cmd /c start taskkill /f /t /IM java.exe2
     
    #测试连接总次数 
    testTotalCount=2
     
    #连接失败时,再次检测时间间隔,单位为秒
    testIntervalTime=5
     
    #连接超时时间,即多少秒tomcat没响应视为宕机,单位为秒 
    connectionTimeout=15
     
    #tomcat启动时间,防止在tomcat尚未启动完成的时候,程序又去检验tomcat状态,造成尚未启动完成又重新启动,单位为秒 
    tomcatStartTime=600
     
    #测试连接地址 
    testHttp=http://localhost/mhmscp/login.jsp
     
    #正常情况下,每次检测间隔时间,单位为秒 
    waitIntervalTime=120

    
    展开全文
  • 在项目后期维护中会遇到这样的情况,tomcat在内存溢出的时候就出现死机的情况和遇到长时间不响应,需要人工手动关闭和重启服务,针对这样的突发情况,希望程序能自动处理问题而不需要人工关于,所以才有了目前的需求...

    在项目后期维护中会遇到这样的情况,tomcat在内存溢出的时候就出现死机的情况和遇到长时间不响应,需要人工手动关闭和重启服务,针对这样的突发情况,希望程序能自动处理问题而不需要人工关于,所以才有了目前的需求。

    一、设置tomcat定时启动

    1,首先将tomcat注册为服务,先打开tomcat的bin目录下service.bat文件,修改下面的值,这是sevvice的注册名称和显示名称,一般可使用默认值。

    set SERVICE_NAME=Tomcat7 set PR_DISPLAYNAME=Apache Tomcat

    【然后修改jvm大小,搜索到--JvmMs 128 --JvmMx 256 进行修改,因为做成服务启动,启动的时候就不会用到 catalina.bat,也就不会读取里面的jvm设置了。】(可选,可以不设置)

    然后运行cmd命令窗口,cd 到tomcat的bin目录下,运行下面的命令 service.bat install 运行成功过后,会提示服务已经安装成功。

    2,制作重启脚本restart.bat,文件内容如下 net stop Tomcat7 net start Tomcat7

    3,利用控制面板里面的“任务计划”设置第2步的脚本运行时间计划

    4,如果想删除服务,也很简单,先把服务停掉,然后在cmd窗口运行下面的命令即可,后面那个Tomcat7是服务名。 sc delete Tomcat7

    需要注意的是,需要先把服务停掉,才能一次删除成功,或者删除之后再停止服务,就会发现服务已经删除成功了。

    二、监听tomcat

     只要运行start.bat即可,相关配置在config.properties文件中,默认即可, 如果服务名不对应就修改关闭和启动命令的服务名即可:net start 【Tomcat7】括号中服务名,然后运行start.bat

    下面是具体的监听代码:

    首先是监听类TomcatMonitor .Java

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. import java.io.BufferedReader;  
    2. import java.io.IOException;  
    3. import java.io.InputStream;  
    4. import java.io.InputStreamReader;  
    5. import java.net.MalformedURLException;  
    6. import java.net.URL;  
    7. import java.net.URLConnection;  
    8. import java.util.Properties;  
    9. /** 
    10.  * @describe:TomcatMonitor.java 
    11.  *  
    12.  * @date 2016-7-4 
    13.  * @author liuweilong 
    14.  */  
    15. public class TomcatMonitor implements Runnable{  
    16.       
    17.     String start=""//系统命令 启动  
    18.     String stop=""//系统命令 关闭  
    19.     String testHttp="";  //测试连接地址  
    20.     int testIntervalTime=1;//测试连接间隔时间,单位为秒  
    21.     int waitIntervalTime=2//等待测试间隔时间,单位为秒  
    22.     int testTotalCount=5//测试连接总次数  
    23.       
    24.     Thread thread=null;  
    25.       
    26.     public TomcatMonitor(){  
    27.         InputStream in = TomcatMonitor.class.getResourceAsStream("config.properties");  
    28.         Properties p = new Properties();  
    29.          try {  
    30.             p.load(in);  
    31.             stop=p.getProperty("stop");  
    32.             start=p.getProperty("start");  
    33.             testHttp=p.getProperty("testHttp");  
    34.             testIntervalTime=Integer.parseInt(p.getProperty("testIntervalTime"));  
    35.             waitIntervalTime=Integer.parseInt(p.getProperty("waitIntervalTime"));  
    36.             testTotalCount=Integer.parseInt(p.getProperty("testTotalCount"));             
    37.         } catch (Exception e) {  
    38.                     e.printStackTrace();  
    39.         }  
    40.               
    41.         System.out.println("*******************初始化成功!*******************");  
    42.            
    43.           
    44.         thread=new Thread(this);  
    45.         thread.start();       
    46.     }  
    47.       
    48.     public void run() {  
    49.         System.out.println("正在监控中...");     
    50.         int testCount=0;  
    51.         while(true){  
    52.             testCount=0;  
    53.             testCount++;              
    54.             boolean isrun=test();  
    55.             System.out.println("正在启动测试连接,尝试连接次数为:"+testCount+",结果为:"+(isrun==false?"失败.":"成功!"));                 
    56.             while(!isrun){  
    57.                 if(testCount>=testTotalCount)break;  
    58.                 try {  
    59.                     thread.sleep(testIntervalTime*1000);  
    60.                 } catch (InterruptedException e) {  
    61.                     e.printStackTrace();  
    62.                 }  
    63.                 testCount++;  
    64.                 System.out.println("正在启动测试连接,尝试连接次数为:"+testCount+",结果为:"+(isrun==false?"失败.":"成功!"));                 
    65.                 isrun=test();  
    66.             }  
    67.               
    68.             if(!isrun){               
    69.                 try{        
    70.                     //关闭tomcat服务      
    71.                     Process proc = Runtime.getRuntime().exec(stop);  
    72.                     thread.sleep(5000);  
    73.                     //启动tomcat服务  
    74.                     System.out.println("测试连接失败,正在重启tomcat");  
    75.                     Process p=Runtime.getRuntime().exec(start);   
    76.                     System.out.println("重启tomcat成功");  
    77.                 }catch(Exception e){  
    78.                     e.printStackTrace();  
    79.                     System.out.println("重启tomcat异常,请查看先关错误信息。。。。。");  
    80.                       
    81.                 }                 
    82.             }  
    83.               
    84.             try {  
    85.                 thread.sleep(waitIntervalTime*1000);  
    86.             } catch (InterruptedException e) {  
    87.                 e.printStackTrace();  
    88.             }  
    89.               
    90.             isrun=test();  
    91.         }         
    92.     }  
    93.       
    94.     public boolean test(){  
    95.           
    96.         URL url=null;         
    97.         try {  
    98.             url = new URL(testHttp);  
    99.         } catch (MalformedURLException e) {  
    100.             e.printStackTrace();  
    101.         }  
    102.         try {  
    103.             URLConnection urlConn=url.openConnection();  
    104.             urlConn.setReadTimeout(15000);  
    105.             BufferedReader reader = new BufferedReader(new InputStreamReader( urlConn.getInputStream()));            //实例化输入流,并获取网页代码  
    106.                    String s;                                         
    107.                    while ((s = reader.readLine()) != null) {  
    108.                       return true;     
    109.                    }                          
    110.         } catch (Exception e) {  
    111.           return false;  
    112.         }  
    113.         return false;  
    114.     }  
    115.       
    116.       
    117.     public static void main(String[] args) throws Exception{  
    118.         TomcatMonitor tm=new TomcatMonitor();  
    119.     }  
    120.       
    121.   
    122. }  

    然后是对应的配置文件config.properties:

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. #系统命令 启动  
    2. start=net start Tomcat7  
    3.   
    4. #关闭  
    5. stop = net stop Tomcat7  
    6.   
    7. #测试连接总次数  
    8. testTotalCount=3  
    9.   
    10. #连接失败时,再次检测时间间隔,单位为秒  
    11. testIntervalTime=3  
    12.   
    13. #连接超时时间,即多少秒tomcat没响应视为宕机,单位为秒  
    14. connectionTimeout=15  
    15.   
    16. #tomcat启动时间,防止在tomcat尚未启动完成的时候,程序又去检验tomcat状态,造成尚未启动完成又重新启动,单位为秒  
    17. tomcatStartTime=600  
    18.   
    19. #测试连接地址  
    20. testHttp=http://127.0.0.1:8080  
    21.   
    22. #正常情况下,每次检测间隔时间,单位为秒  
    23. waitIntervalTime=30  

    最后是启动的start.bat:

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. java -cp . TomcatMonitor  

    如何监控tomcat死掉后自动重启

    安装设置分为以下四个步骤:第一:创建监控页面在项目系统里添加一个提供监控系统访问的页面monitor.jsp,只需输出一句代码,代码如下:<%String s=”ok”;out.println(s.length());%>第二:修改tomcat配置若是系统自动安装的服务,可直接跳过这一步。但是需确定服务名称,以便在以后的步骤使用,如下图:

    若是手动为tomcat设置服务,请按以下步骤进行:

    1、进入tomcat目录下的bin目录,用记事本打开service.bat文件,找到set SERVICE_NAME=TOMCATXX这一句,把后面的值改成自己对tomcat设置的服务名,把PR_DISPLAYNAME的值设置为显示的服务名称,这个是在系统管理的服务里面中列表里显示的名字。

    如设置信访系统,则设置为这样:

    Set SERVICE_NAME=xfgl

    Set PR_DISPLAYNAME=tomcat xfgl

    保存。

    2、在运行里输入“CMD”,进入命令控制台,使用cd命令转到tomcat目录下的bin目录,运行service.bat install命令,把tomcat设置为系统启动服务。

    3、进入控制面板->管理工具->服务,在服务列表中找到“tomcat xfgl”一项,双击弹出窗口,把启动类型改为“自动”,确定保存。

    设置监控脚本文件


    展开全文
  • 在项目后期维护中会遇到这样的情况,tomcat在内存溢出的时候就出现死机的情况和遇到长时间不响应,需要人工手动关闭和重启服务,针对这样的突发情况,希望程序能自动处理问题而不需要人工关于,所以才有了目前的需求...

    在项目后期维护中会遇到这样的情况,tomcat在内存溢出的时候就出现死机的情况和遇到长时间不响应,需要人工手动关闭和重启服务,针对这样的突发情况,希望程序能自动处理问题而不需要人工关于,所以才有了目前的需求。

    一、设置tomcat定时启动

    1,首先将tomcat注册为服务,先打开tomcat的bin目录下service.bat文件,修改下面的值,这是sevvice的注册名称和显示名称,一般可使用默认值。

    set SERVICE_NAME=Tomcat7 set PR_DISPLAYNAME=Apache Tomcat

    【然后修改jvm大小,搜索到--JvmMs 128 --JvmMx 256 进行修改,因为做成服务启动,启动的时候就不会用到 catalina.bat,也就不会读取里面的jvm设置了。】(可选,可以不设置)

    然后运行cmd命令窗口,cd 到tomcat的bin目录下,运行下面的命令 service.bat install 运行成功过后,会提示服务已经安装成功。

    2,制作重启脚本restart.bat,文件内容如下 net stop Tomcat7 net start Tomcat7

    3,利用控制面板里面的“任务计划”设置第2步的脚本运行时间计划

    4,如果想删除服务,也很简单,先把服务停掉,然后在cmd窗口运行下面的命令即可,后面那个Tomcat7是服务名。 sc delete Tomcat7

    需要注意的是,需要先把服务停掉,才能一次删除成功,或者删除之后再停止服务,就会发现服务已经删除成功了。

    二、监听tomcat

     只要运行start.bat即可,相关配置在config.properties文件中,默认即可, 如果服务名不对应就修改关闭和启动命令的服务名即可:net start 【Tomcat7】括号中服务名,然后运行start.bat

    下面是具体的监听代码:

    首先是监听类TomcatMonitor .java

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.Properties;
    /**
     * @describe:TomcatMonitor.java
     * 
     * @date 2016-7-4
     * @author liuweilong
     */
    public class TomcatMonitor implements Runnable{
        
        String start=""; //系统命令 启动
        String stop=""; //系统命令 关闭
        String testHttp="";  //测试连接地址
        int testIntervalTime=1;//测试连接间隔时间,单位为秒
        int waitIntervalTime=2; //等待测试间隔时间,单位为秒
        int testTotalCount=5; //测试连接总次数
        
        Thread thread=null;
        
    	public TomcatMonitor(){
    		InputStream in = TomcatMonitor.class.getResourceAsStream("config.properties");
    		Properties p = new Properties();
    		 try {
    			p.load(in);
    		 	stop=p.getProperty("stop");
    		 	start=p.getProperty("start");
    		 	testHttp=p.getProperty("testHttp");
    		 	testIntervalTime=Integer.parseInt(p.getProperty("testIntervalTime"));
    		 	waitIntervalTime=Integer.parseInt(p.getProperty("waitIntervalTime"));
    		    testTotalCount=Integer.parseInt(p.getProperty("testTotalCount"));			
    		} catch (Exception e) {
    					e.printStackTrace();
    		}
    			
    		System.out.println("*******************初始化成功!*******************");
    		 
    		
    		thread=new Thread(this);
    		thread.start();		
    	}
    	
    	public void run() {
            System.out.println("正在监控中...");   
            int testCount=0;
    		while(true){
    			testCount=0;
    			testCount++;			
                boolean isrun=test();
                System.out.println("正在启动测试连接,尝试连接次数为:"+testCount+",结果为:"+(isrun==false?"失败.":"成功!"));	            
                while(!isrun){
                	if(testCount>=testTotalCount)break;
                	try {
    					thread.sleep(testIntervalTime*1000);
    				} catch (InterruptedException e) {
    					e.printStackTrace();
    				}
    				testCount++;
    				System.out.println("正在启动测试连接,尝试连接次数为:"+testCount+",结果为:"+(isrun==false?"失败.":"成功!"));            	
                	isrun=test();
                }
                
                if(!isrun){          	
                	try{      
    					//关闭tomcat服务	
            	        Process proc = Runtime.getRuntime().exec(stop);
            	        thread.sleep(5000);
    					//启动tomcat服务
    					System.out.println("测试连接失败,正在重启tomcat");
            	        Process p=Runtime.getRuntime().exec(start); 
            	        System.out.println("重启tomcat成功");
            		}catch(Exception e){
            			e.printStackTrace();
    					System.out.println("重启tomcat异常,请查看先关错误信息。。。。。");
    					
            		}            	
                }
    			
                try {
    				thread.sleep(waitIntervalTime*1000);
    			} catch (InterruptedException e) {
    				e.printStackTrace();
    			}
                
                isrun=test();
    		}		
    	}
    	
    	public boolean test(){
    		
    		URL url=null;		
    		try {
    			url = new URL(testHttp);
    		} catch (MalformedURLException e) {
    			e.printStackTrace();
    		}
    		try {
    			URLConnection urlConn=url.openConnection();
    			urlConn.setReadTimeout(15000);
    			BufferedReader reader = new BufferedReader(new InputStreamReader( urlConn.getInputStream()));            //实例化输入流,并获取网页代码
    				   String s;                                       
    				   while ((s = reader.readLine()) != null) {
    				      return true;   
    				   }				   		
    		} catch (Exception e) {
              return false;
    		}
    		return false;
    	}
    	
    	
    	public static void main(String[] args) throws Exception{
    		TomcatMonitor tm=new TomcatMonitor();
    	}
    	
    
    }
    

    然后是对应的配置文件config.properties:

    #系统命令 启动
    start=net start Tomcat7
    
    #关闭
    stop = net stop Tomcat7
    
    #测试连接总次数
    testTotalCount=3
    
    #连接失败时,再次检测时间间隔,单位为秒
    testIntervalTime=3
    
    #连接超时时间,即多少秒tomcat没响应视为宕机,单位为秒
    connectionTimeout=15
    
    #tomcat启动时间,防止在tomcat尚未启动完成的时候,程序又去检验tomcat状态,造成尚未启动完成又重新启动,单位为秒
    tomcatStartTime=600
    
    #测试连接地址
    testHttp=http://127.0.0.1:8080
    
    #正常情况下,每次检测间隔时间,单位为秒
    waitIntervalTime=30

    最后是启动的start.bat:

    java -cp . TomcatMonitor



    展开全文
  • 采用cron执行任务机制实现自动重启。步骤如下: 1.编写shell脚本检查tomcat所用端口是否启用: <!-- lang: shell --> #!/bin/bash TOMCATPATH=/home/tomcat/apache-tomcat-7.0.33/ pt=`lsof -i :8080|grep -v ...
    采用cron执行任务机制实现自动重启。步骤如下:
    1.编写shell脚本检查tomcat所用端口是否启用:
    <!-- lang: shell -->
        #!/bin/bash   
    TOMCATPATH=/home/tomcat/apache-tomcat-7.0.33/
    
    pt=`lsof -i :8080|grep -v "PID" | awk '{print $2}'`
    
    if [ "$pt" == "" ];
    then
        cd $TOMCATPATH
        bin/startup.sh
    fi
    tail -f logs/catalina.out
    
    脚本保存为checkTomcat.sh
    2.crontab -e 增加任务如下:
        * * * * *  /home/checkTomcat.sh
    
    3.重启corm:
        sudo service cron restart
    
    4.完成。
    
    注意:需要在startup.sh中发布JAVA_HOME等环境变量,否则启动tomcat不成功.
    

    转载于:https://my.oschina.net/drf003/blog/118672

    展开全文
  • 1.在服务器上创建tomcatMonitor.sh 2.使文件生效chmod u+x *.sh 3.编辑tomcatMonitor.sh文件,if及fi必须成对出现,如果if then写在一行需要用;隔开 #!/bin/sh # 获取tomcat的PID TOMCAT_PID=$(ps -ef | grep ...
  • Linux下自动检测Tomcat是否宕机,并自动重启 公司服务器tomcat经常自动挂掉,具体原因无法找到。所以做了这次调整。让Linux自动检测tomcat是否宕机 1. 新建一个名字为XX.sh的文件,文件内容如下 #!/bin/sh # 获取...
  • 下面的代码从网上找的,... * 监视Tomcat是否宕机,如果宕机就会自动重启 */ package cn.ipcat; import java.net.URL; import java.net.URLConnection; import java.util.Date; public class Detector { ...
  • 在项目后期维护中会遇到这样的情况,tomcat在内存溢出的时候就出现死机的情况和遇到长时间不响应,需要人工手动关闭和重启服务,针对这样的突发情况,希望程序能自动处理问题而不需要人工关于,所以才有了目前的需求...
  • Linux shell自动监控tomcat宕机重启

    千次阅读 2016-07-26 16:50:48
    参考网上例子 整了个 linux 的自动检测tomcat宕机的shell脚本 以后就可以自己重启了 出了问题。。(有时间放到linux定时任务计划里面)\ 下面检测的是一个工程里面的图片 来检测tomcat 是否正常 echo 001 这种打断...
  • 在项目后期维护中会遇到这样的情况,tomcat在内存溢出的时候就出现死机的情况和遇到长时间不响应,需要人工手动关闭和重启服务,针对这样的突发情况,希望程序能自动处理问题而不需要人工关于,所以才有了目前的需求...
  • 脚本中StartTomcatTomcatID,根据自己tomcat位置及tomcat名自定义 ,WebUrl可以是一个比较小的页面,也可以是服务器的资源图片 2.window上编辑后的sh脚本在linux执行报错 原因:window上保存文件,换行是\r\n ,...
  • Tomcat服务器的监听及宕机自动重启的开发   思路: 1、 通过http访问获取tomcat服务器上的项目访问状态200为正常 2、 当服务器宕机时,会进入异常IOException中,此时通过java调用tomcat的shutdown服务和startup...
  • #!/bin/bash ... #执行命令,重启tomcat tomcat_home=/usr/local/tomcat #停止tomcat变量 SHUTDOWN=$tomcat_home/bin/shutdown.sh #启动tomcat变量 STARTTOMCAT=$tomcat_home/bin/startup.sh ...
  • 1、问题描述:分两种情况1.1、tomcat 彻底挂掉端口不会占用进程;1.2、并没有彻底挂掉 端口仍占用进程,但是接口访问异常; 2、解决思路:启动一个java服务轮询(10秒钟一次)程序的一个接口(比如获取当前时间),如果...
  • String dataStr = "admin 服务宕机 现已自动重启 请及时查看日志 修改错误!"; String[] emailStrs = emails.split(","); for (String email : emailStrs) { sendMail.sendMsg(email, dataStr); } } catch ...
  • # 使用while循环没10秒监督循环一次,检测tomcat进程是否存在,不存在的话启动tomcat while true do # 使用jps查看java进程 jps > ps.txt sleep 2 # 使用通道将java进程信息写入ps.txt文本中,之后检索是否存在...
  • /bin/bash# func:自动监控tomcat脚本并且执行重启操作# 获取tomcat进程ID(其中[grep -w 'tomcat']代码中的tomcat需要替换为你的tomcat文件夹名)TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-7.0.96'|...
  • /bin/bash# func:自动监控tomcat脚本并且执行重启操作# 获取tomcat进程ID(其中[grep -w 'tomcat']代码中的tomcat需要替换为你的tomcat文件夹名)TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-7.0.96'|...
  • 如果在nginx服务器使用轮询策略处理客户端的请求,出现了tomcat 宕机的情况下,例如:有两个请求,第一个请求轮询给了tomcat1,按照轮询的策略,当在来一个请求的时候,这条请求 将交个tomcat2处理,此时 如果tomcat...
  • /bin/bash# func:自动监控tomcat脚本并且执行重启操作# 获取tomcat进程ID(其中[grep -w 'tomcat']代码中的tomcat需要替换为你的tomcat文件夹名)TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-7.0.96'|...
  • 一开始没太注意这个问题,每当服务器挂了之后就手动重启,直到昨天有事没在电脑旁,服务器又宕机了,结果负责前端开发的同学只能等到昨晚我回去时重启服务器才能继续工作。这也让我意识到是时候该解决这个问题了。 ...
  • tomcat宕机自动重启,不会用可留言,有文档
  • tomcat在运行的时候,由于各种原因会出现挂掉情况,以下用...# function:自动监控tomcat进程,宕机就执行重启操作 # 定义环境变量 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/loc...
  • 判断tomcat是否宕机,如果宕机,则进行重启。java实现。Detector.java:import java.net.URL;import java.net.URLConnection;import java.util.Date;/**** @author james**/public class Detector {private static ...
  • 检查Tomcat是否宕机

    2013-03-19 18:27:27
    某站点以java开发,运行在tomcat上,但因某些原因,java时不时假死或者自动停止。为了防止这个问题,临时...其基本思路为:当取得到带jsp后缀文件的url状态码不是200时,强制重启tomcat。用crond每隔一段时间执行一
  •  客户的机器有时遇见宕机的情况,虽然我在Linux服务器上配置了Tomcat自启动程序,可以在机器重启的时候自动部署web应用。但是,当数据库服务器与Web应用服务器不能同时启动的时候,Tomcat启动项目就失败了。最后,...
  • 检查tomcat是否宕机

    2012-07-11 09:43:39
    某站点以java开发,运行在tomcat上,但因某些原因,java时不时假死或者自动停止。为了防止这个问题,临时采取定期检查该站点url的 方式判断tomcat的运行情况。其基本思路为:当取得到带jsp后缀文件的url状态码不是...

空空如也

空空如也

1 2 3
收藏数 59
精华内容 23
关键字:

tomcat宕机自动重启