java 监控 宕机_JAVA监测tomcat是否宕机,控制重启
发布日期:2021-06-24 13:16:43 浏览次数:3 分类:技术文章

本文共 2596 字,大约阅读时间需要 8 分钟。

判断tomcat是否宕机,如果宕机,则进行重启。java实现。

1.[代码][Java]代码

import java.net.URL;

import java.net.URLConnection;

import java.util.Date;

/**

*

* @author james

*

*/

public class Detector {

private static void keepTomcatAlive() throws NullPointerException {

String s;

String t = new String("tomcat6");

boolean isTomcatAlive = false;

java.io.BufferedReader in;

System.setProperty("sun.net.client.defaultConnectTimeout", "8000");

System.setProperty("sun.net.client.defaultReadTimeout", "10000");

try {

URL url = new URL("http://localhost:8080/test.jsp");

URLConnection con = url.openConnection();

in = new java.io.BufferedReader(new java.io.InputStreamReader(con.getInputStream()));

con.setConnectTimeout(1000);

con.setReadTimeout(4000);

while ((s = in.readLine()) != null) {

if (s.length() > 0) {

//accessed page successful.

return;

}

}

in.close();

} catch (Exception ex) {

//ex.printStackTrace();

}

try {

java.lang.Process p = java.lang.Runtime.getRuntime().exec("ps -aux");

in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));

while ((s = in.readLine()) != null) {

if (s.startsWith(t)) {

isTomcatAlive = true;

break;

}

}

in.close();

}catch (Exception e) {

e.printStackTrace();

}

if (isTomcatAlive) {

System.out.println(" Tomcat is alive but not response!");

stopTomcat();

}

startTomcat();

}

public static void stopTomcat() {

try {

java.lang.Process p = java.lang.Runtime.getRuntime().exec("/etc/init.d/tomcat6 stop");

java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));

String s;

String t = "Stopping";

boolean restart = false;

while ((s = in.readLine()) != null) {

if (s.indexOf(t) != -1) {

restart = true;

break;

}

}

System.out.println(" Tomcat is stop " + (restart ? "OK" : "ERROR"));

} catch (Exception e) {

e.printStackTrace();

}

}

public static void startTomcat() {

try {

java.lang.Process p = java.lang.Runtime.getRuntime().exec("/etc/init.d/tomcat6 start");

java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));

String s;

String t = "Starting";

boolean restart = false;

while ((s = in.readLine()) != null) {

if (s.indexOf(t) != -1) {

restart = true;

break;

}

}

System.out.println(" Tomcat is start " + (restart ? "OK" : "ERROR"));

} catch (Exception e) {

e.printStackTrace();

}

}

private static void debug(String msg){

System.out.println("Debug::: "+msg);

}

public static void main(String[] args) {

while (true) {

try {

debug("Detect agin ");

Detector.keepTomcatAlive();

debug("Sleep...");

Thread.sleep(30000);

} catch (Exception ex) {

ex.printStackTrace();

}

}

}

}

转载地址:https://blog.csdn.net/weixin_33073525/article/details/114101262 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:JAVA nio异步爬虫_java 使用webmagic 爬虫框架爬取博客园数据
下一篇:java 共享目录_java 操作windows 共享目录方法介绍

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月04日 10时49分25秒