java.lang.Process启动Linux脚本方法

package com.eastcom_sw.stream.webservices.controller;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.eastcom_sw.common.web.BaseController;

@Controller
@RequestMapping(value = "/reenDataController")
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class ReenDataController extends BaseController {
    /**
     * <p>Description:重启tomcat </p>
     * <p>Title: resetTomcat</p>
     * @param session
     * @param request
     * @param response
     */
    @RequestMapping(value="/resetTomcat")
    public void resetTomcat(HttpSession session, HttpServletRequest request, 
            HttpServletResponse response){
        String message="";
        BufferedReader br= null;
        Process process = null;  
        try {
             String shPath= "/home/tomcat_ws/bin/start_tomcatws.sh";   //tomecat启动脚本路径
             System.out.println("=============启动脚本路径:"+shPath);  
             process = Runtime.getRuntime().exec(shPath.toString());  
             br = new BufferedReader(new InputStreamReader(process.getInputStream()));  
            StringBuffer sb = new StringBuffer();  
            String line;  
            while ((line = br.readLine()) != null) {  
                sb.append(line).append("\n");  
            }  
            String result = sb.toString();  
            System.out.println("=============启动脚本-执行结果:"+result);  
            if(process != null){  
                int extValue = process.waitFor(); //返回码 0 表示正常退出 1表示异常退出  
                if(0 == extValue){  
                    System.out.println("=============启动脚本-执行完毕!"); 
                }else{ 
                    System.out.println("=============启动脚本-执行异常!"); 
                    message="启动脚本执行异常";
                }
            }  
             this.addResultInfo(SUCCESS,message,"");
        }catch (IOException e) {
            // TODO Auto-generated catch block
            message= "启动脚本执行异常";
            e.printStackTrace();
            this.addResultInfo(FAILURE, message, "");
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            message= "启动脚本异常退出 ";
            e.printStackTrace();
            this.addResultInfo(FAILURE, message, "");
        }finally {  
            try {  
                br.close();  
                process.destroy();  
            } catch (Exception e) {  
                log.error("流或process销毁异常",e.getMessage());  
            }  
        }  
        this.responseResult(response, this.getResultJSONStr());
    }
}

 

posted @ 2018-06-04 10:49  悠悠乃  阅读(1481)  评论(0编辑  收藏  举报