来源
:http://java0note.blog.51cto.com/469557/110003
理很简单。 在机器上做一个测试的文件。如果我们的程序能够读取到这个文件,则证明运行正常
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;
/**
* *
*/
public class Detector {
private static void keepTomcatAlive() throws NullPointerException {
String s;
String t = new String("tomcat5.exe");
boolean isTomcatAlive = false;
java.io.BufferedReader in;
try {
URL url = new URL("http://localhost/heartbeat.htm");
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) {
// 如果能够读取到页面则证明可用
return;
}
}
in.close();
} catch (Exception ex) {
}
try {
java.lang.Process p = java.lang.Runtime.getRuntime().exec("tasklist");
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("<" + new Date() + "> Tomcat is alive but not response!");
stopTomcat();
}
startTomcat();
}
public static void stopTomcat() {
try {
java.lang.Process p = java.lang.Runtime.getRuntime().exec("net stop \"Apache Tomcat\"");
java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));
String s;
String t = "成功停止";
boolean restart = false;
while ((s = in.readLine()) != null) {
if (s.indexOf(t) != -1) {
restart = true;
break;
}
}
System.out.println("<" + new Date() + "> 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("net stop \"Apache Tomcat\"");
} catch (Exception e) {
e.printStackTrace();
}
try {
java.lang.Process p = java.lang.Runtime.getRuntime().exec("net start \"Apache Tomcat\"");
java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));
String s;
String t = "启动成功";
boolean restart = false;
while ((s = in.readLine()) != null) {
if (s.indexOf(t) != -1) {
restart = true;
break;
}
}
System.out.println("<" + new Date() + "> Tomcat is start " + (restart ? "OK" : "ERROR"));
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
while (true) {
try {
Detector.keepTomcatAlive();
Thread.sleep(30000);
} catch (Exception ex) {
}
}
}
}
远程重启 tomcat
测试成功,jsp 代码如下:
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%>
<%
Runtime run = Runtime.getRuntime();
Process pro = run.exec("d:\\tomcat\\bin\\restart.bat"); // 替换为你的路径,linux下为.sh , 如果单独调用 shutdown.bat 就关闭了。 单独启动没戏,因为tomcat已经停了
%>
restart.bat
call shutdown.bat
delay.exe 5
call startup.bat
唯一的问题,你需要一个延迟程序,就是那个 delay.exe 5, 否则可能还没有关闭就启动了,80端口被占用
如果是服务,就更简单了,restart.bat 里面写上 net stop Tomcat 和 net start Tomcat 就可以了!
分享到:
相关推荐
检测Tomcat运行状态-自动重启
Windows平台下监控Tomcat运行时服务假死或异常后并尝试自动重启Tomcat,已测试可用 Windows平台下监控Tomcat运行时服务假死或异常后并尝试自动重启Tomcat,已测试可用
10秒检测tomcat网站是否访问正常,访问异常30秒内完成tomcat重启并继续监控,傻瓜式修改两个地方,第一个要监控的 url地址支持https,第二个是tomcat的安装目录,就可以了。好用记得给个大大的好评。bat文件每一行都...
Shell脚本定时监控tomcat,服务挂掉自动重启
检测Tomcat等网站假死,自动重启脚本,方便大家下载,可以参考修改。
当tomcat服务假死或异常停止,可以快速实现自动重启
linux系统tomcat自动重启脚本:判断监控 tomcat日志catalina.out超过一定限度 自动重启tomcat
linux定时自动重启TOMCAT,SHELL脚本, 按制定时间启动脚本,并自动查找TOMCAT进程,关闭TOMCAT进程,然后再启动TOMCAT进程,服务器压力过大,或遭受攻击时,TOMCAT集群时自动维护出问题的TOMCAT。
用于Tomcat自动重启脚本,避免直接 -9 杀死服务,此脚本使用循环杀进程
TOMCAT自动检测程序,利用系统进程进行监控,如果监控进程意外关闭,使用命令方式进行重新启动TOMCAT
自动重启Tomcat脚本,每隔300s监测一次Tomcat启动状态,若没启动则自动重启,注意重新设定端口号,并将2个脚本放到对应的bin目录下(有startup.bat的地方),时间间隔可自行修改
Linux 监控tomcat,自动重启tomcat服务Linux 监控tomcat,自动重启tomcat服务Linux 监控tomcat,自动重启tomcat服务Linux 监控tomcat,自动重启tomcat服务
最近公司需要在Linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于Linux下有Shell脚本可以实现此效果,下面是Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤。...
提高开发效率之tomcat免重启(随意更改java代码)提高开发效率之tomcat免重启(随意更改java代码)提高开发效率之tomcat免重启(随意更改java代码)提高开发效率之tomcat免重启(随意更改java代码)
配置tomcat,使其在修改java源码以及js代码时无需重启tomcat,但是在修改xml文件时需要重新部署tomcat
tomcat异常关闭自动重启批处理脚本 word文档说明
tomcat自动定时重启,需要根据实际情况 修改log日志,和tomcat服务名。
可用于tomcat健康检测、定时重启。 连通网址:检测是否正常访问的url 监测间隔(s):几秒检测一次url 超时时间(s):检测url允许的最长时间 执行程序:url检测异常时要执行的程序 执行时间(s):预计执行程序执行所需时间,...
在网上找了好多关于Nsis打包JavaWeb和tomcat的方法,都没有能让tomcat服务自动重启的,便自己研究编写了一个方法。供大家参考! 1、实现程序一键安装 2、卸载 3、安装时验证密码 4、应用系统快捷方式启动、注册...
tomcat宕机重启脚本,比较简单的一种设置