1. 程式人生 > >java通過程序名殺掉指定的linux程序

java通過程序名殺掉指定的linux程序

這幾天公司給了個任務,大體是找出程序並kill掉。

 帶我的師傅給了個語句:Process pid=Runtime.getRuntime().exec("ps -ef | grep 程序名 |grep -v grep | awk '{print $2}'");

但怎麼執行都不起作用。

於是,我決定另闢蹊徑:

1.首先通過

Process pid=Runtime.getRuntime().exec("ps -ef");

找出linux當前執行的所有程序。

  2.再把pid寫入流中:

BufferedReader br = new BufferedReader(new InputStreamReader(
                       pid.getInputStream()), 1024);

  3.讀取流中的指定資訊:

String line = null;

 while ((line = br.readLine()) != null) {

if(line.contains("程序名")){
           
            logger.info("程序分流資訊是:"+line);
            String [] inf=line.split(" +");
            for(int j=0;j<inf.length;j++){
            logger.info("inf["+j+"]="+inf[j]);
            }
            logger.info("程序號資訊是:"+inf[1]);
            Process pi=Runtime.getRuntime().exec("kill -9 "+inf[1]);
            logger.info("已執行殺程序");
           
            }else{
//           logger.info(""+line);
            }
           }

   4.這樣就把指定的程序給kill成功了!

注:logger.info()是為了列印日誌的,可以替換成System.out.println();