¿Cómo matar runtime.exec?
Utilizo el siguiente código, en mi jframe para ejecutar un script de shell a través del programa java, pero cuando implemento otro método para detener el proceso de ejecución, este método se bloquea primero y no puedo detener mi programa. Por lo tanto, si ya eliminé el nuevo proceso, el problema es cómo obtener el pid del proceso y cómo ponerlo en segundo plano para matarlo.
public static void execShellCmd(String cmd) {
try {
testPath = getPath();
System.out.println(cmd);
Runtime runtime = Runtime.getRuntime();
process = runtime.exec(new String[] { "sh",
testPath + "/install.sh", cmd, "&" });
int exitValue = process.waitFor();
value = exitValue;
System.out.println("exit value: " + exitValue);
BufferedReader buf = new BufferedReader(new InputStreamReader(
process.getInputStream()));
String line = "";
BufferedWriter bufferedWriter = null;
while ((line = buf.readLine()) != null) {
System.out.println("exec response: " + line);
log = line;
writeToFile(line);
}
} catch (Exception e) {
System.out.println(e);
}
}