如何使用Java获取chromedriver进程PID?

我遇到了一个问题。有时,当我的JUnit测试正在运行时,请命令webDriver.quit();。不会杀死chromedriver进程,因此下一个测试无法开始。在那种情况下,我想添加一些可以在Linux上手动终止进程的方法,但是我不知道如何获取chromedriver的PID,因此可以执行以下操作:Runtime.getRuntime()。exec(KILL

+ PID);

回答:

您可以使用pgrep找到PID,然后将其杀死:

    private void killChromedriver() throws IOException, InterruptedException {

String command = "pgrep chromedriver";

Process process = Runtime.getRuntime().exec(command);

BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));

List<String> processIds = getProcessedIds (process, br);

for (String pid: processIds) {

Process p = Runtime.getRuntime().exec("kill -9 " + pid);

p.waitFor();

p.destroy();

}

}

private List<String> getProcessedIds(Process process, BufferedReader br) throws IOException, InterruptedException {

process.waitFor();

List<String> result = new ArrayList<>();

String processId ;

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

result.add(processId);

}

process.destroy();

return result;

}


另一个更简单的解决方案似乎是

    Runtime.getRuntime().exec("pkill chromedriver");

以上是 如何使用Java获取chromedriver进程PID? 的全部内容, 来源链接: utcz.com/qa/428817.html

回到顶部