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