【问题标题】:Java Kill processes started with ProcessBuilderJava Kill 进程从 ProcessBuilder 开始
【发布时间】:2016-09-05 10:37:33
【问题描述】:
我正在像这样运行我的进程:
builder = new ProcessBuilder("/bin/bash", "-c", "./MessageGenerator | ./SimpleEchoServer");
process = builder.start();
然后 process.destroy() 或 forceDestroy() 不起作用。是因为我用的是管道吗?我怎样才能杀死这些进程?
【问题讨论】:
标签:
java
unix
process
processbuilder
【解决方案1】:
您还应该拆分管道命令。我写了一个小例子:
package com.company;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
ProcessBuilder processBuilder;
String line;
processBuilder = new ProcessBuilder("/bin/bash", "-c", "ls -l", "|", "grep java");
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = reader.readLine()) != null) {
System.out.println ("Stdout: " + line);
}
Thread.sleep(10000);
process.destroy();
}
}