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());
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM