当前位置: 首页 > 面试题库 >

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

丁昌翰
2023-03-14
问题内容

我遇到了一个问题。有时,当我的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进程中的线程数? 问题答案: 调试Java程序的有用工具,它提供了线程数和其他有关线程的信息:

  • 问题内容: 我正在编写几个Java程序,在完成我想做的所有事情之后,需要在单独的JVM中终止/清理工作。为此,我将需要获取要创建的Java进程的PID。 问题答案: 在Windows和Unix上均可使用。您可以使用从Java程序中调用此命令。的样本输出如下 您可能需要对此进行解析,然后检查标准名称,然后从相应的行中获取pid。

  • 问题内容: 是否可以从Shell脚本中的父进程ID获取子进程ID? 我有一个要使用Shell脚本执行的文件,这会导致一个新进程 process1 (父进程)。这个 过程1 已经分叉的另一个进程 过程2 (子进程)。使用脚本,我可以使用以下命令获取 process1 的pid : 但我无法获取子进程的pid。 问题答案: 只需使用:

  • 是否可以从外壳脚本中的父进程ID获取子进程ID? 我有一个要使用shell脚本执行的文件,这会导致一个新的进程process1(父进程)。此进程1已经派生了另一个进程process2(子进程)。使用脚本,我可以使用以下命令获得进程1的pid: 但是我无法获取子进程的pid。

  • 本文向大家介绍如何使用PowerShell获取进程的端口号?,包括了如何使用PowerShell获取进程的端口号?的使用技巧和注意事项,需要的朋友参考一下 在PowerShell中使用Get-Process cmdlet时,它没有属性来获取进程使用的端口号。因此,这里我们将编写一个函数,该函数将为我们提供与进程关联的端口号。 Windows命令NETSTAT有一个,它提供端口号和关联的进程ID,但

  • 本文向大家介绍Java如何获取当前进程ID以及所有Java进程的进程ID,包括了Java如何获取当前进程ID以及所有Java进程的进程ID的使用技巧和注意事项,需要的朋友参考一下 首先是获取当前Java运行的Java进程ID,这个是网上常见的,也就是Java程序自身将进程ID打印出来: 运行结果: ManagementFactory是一个在运行时管理和监控Java VM的工厂类,它能提供很多管理V