1.检测linux上的java项目是否正常运行,如果停止,则执行脚本启动java项目
package com.checkStart.controller;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class CheckController extends Thread{
//public static String line = "";
//public static String ip = "127.0.0.1";
// @RequestMapping("checkProject")
// @ResponseBody
// public synchronized String checkProject(){
// return "abc";
// }
@Override
public void run() {
System.out.println("检查系统是否启动");
try {
while(true){
//String pingIp = "ping "+ip;
//Process pro = Runtime.getRuntime().exec(pingIp);
Process pro = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c","ps -ef | grep xx.jar"});
BufferedReader buf = new BufferedReader(new InputStreamReader(pro.getInputStream(),"GBK"));
//System.out.println(buf.readLine()+"==line");
String line = buf.readLine();
if(buf.readLine().trim()==null||buf.readLine().trim().length()<=0){
//System.out.println("已经停止");
}else{
//System.out.println("已经启动");
}
Thread.sleep(10000);
}
} catch (Exception ex) {
System.out.println("系统停止,开始启动");
CheckController cc = new CheckController();
try {
//启动脚本
Runtime.getRuntime().exec("/xx/xxx/xxxx/xx.sh");//先启动脚本,再启动判断线程
cc.run();//启动线程
} catch (Exception e) {
e.printStackTrace();
}
//Thread.interrupted();//如果异常则关闭该线程
}
}
}