java通过进程名杀掉指定的linux进程
这几天公司给了个任务,大体是找出进程并kill掉。 带我的师傅给了个语句:Process pid=Runtime.getRuntime().exec("ps -ef | grep 进程名 |grep -v grep | awk '{print $2}'");但怎么执行都不起作用。于是,我决定另辟蹊径:1.首先通过Process pid=Runtime.getRuntime().
这几天公司给了个任务,大体是找出进程并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();
更多推荐
所有评论(0)