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

如何找到在Java中启动的进程的进程ID(pid)?

方航
2023-03-14
问题内容

如果我通过Runtime.getRuntime().exec(...)或获得Java中的过程对象ProcessBuilder.start(),则可以等待它Process.waitFor(),就像Thread.join(),或者可以使用它杀死它Process.destroy(),就像不推荐使用的那样Thread.stop()

但是:如何找到过程对象的pid?我在《官方文档》中没有找到执行此操作的方法。我可以用Java做到这一点吗?如果是这样,怎么办?


问题答案:

这个家伙叫bash获取PID。我不确定是否有Java解决此问题的方法。

/**
 * Gets a string representing the pid of this program - Java VM
 */
public static String getPid() throws IOException,InterruptedException {

  Vector<String> commands=new Vector<String>();
  commands.add("/bin/bash");
  commands.add("-c");
  commands.add("echo $PPID");
  ProcessBuilder pb=new ProcessBuilder(commands);

  Process pr=pb.start();
  pr.waitFor();
  if (pr.exitValue()==0) {
    BufferedReader outReader=new BufferedReader(new InputStreamReader(pr.getInputStream()));
    return outReader.readLine().trim();
  } else {
    System.out.println("Error while getting PID");
    return "";
  }
}

来源:http : //www.coderanch.com/t/109334/Linux-UNIX/UNIX-process-ID-java-
program



 类似资料:
  • 问题内容: 我想在Windows中杀死特定的Java进程,例如在Linux中(获取processid然后杀死该进程)。 问题答案: 您可以使用JRE中包含的实用程序来查找Java进程的进程ID。输出将显示可执行JAR文件的名称或主类的名称。 然后使用Windows任务管理器终止该过程。如果要在命令行上执行此操作,请使用

  • 我使用的是p=运行时。getRuntime()。exec(“myScript.sh”);作为按钮a的addActionListener(new ActionListener())的actionPerformed(ActionEvent evt)的一部分。 我想有一个方法来终止进程。我试图创建另一个按钮(按钮B)来调用p.destroy()。但是,看起来在单击按钮A后,它启动了进程,并且只有在进程完

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

  • 问题内容: 我从shell脚本启动了一个后台进程,我想在脚本结束后终止该进程。 如何从我的shell脚本中获取此过程的PID?据我所知,变量包含当前脚本的PID,而不是后台进程。 问题答案: 您需要在启动时保存后台进程的PID: 您不能使用作业控制,因为它是一种交互式功能,并且与控制终端绑定在一起。脚本完全不必附加终端,因此作业控制不一定可用。

  • 问题内容: 有没有办法用Java启动流程?在.Net中,这可以通过例如: Java是否具有等效功能,因此我可以让用户找到该应用程序,然后将其用于任何OS? 问题答案: http://www.rgagnon.com/javadetails/java-0014.html 你可以使用系统属性或类似方法获取本地路径。 http://download.oracle.com/javase/tutorial/e

  • 问题内容: 我正在尝试将Shell脚本移植到可读性更高的python版本。原始的shell脚本在后台使用“&”启动多个进程(实用程序,监视器等)。如何在python中达到相同的效果?我希望这些过程在Python脚本完成后不会消失。我敢肯定它与守护程序的概念有关,但是我找不到如何轻松实现此目的。 问题答案: 注意:此答案的最新版本比2009年发布时要少。现在建议在文档中使用其他答案中显示的模块 (请