【发布时间】:2017-07-11 18:03:52
【问题描述】:
我听说在 java 9 中他们做了很多工作来更新 Process API。现在有一种更简洁的方法可以向 Java 生成的Process 发送信号吗?信号被用作触发流程中动作的简单方法。
在我不得不使用反射获取pid,然后使用Runtime#exec 发送kill 命令之前。我假设您仍然需要使用Runtime#exec,因为信号可能取决于操作系统,但我很好奇是否有人知道比这更好的方法!
Process p = Runtime.getRuntime().exec(...);
...
Runtime.getRuntime().exec("kill -SIGUSR1 " + p.getPid());
【问题讨论】:
-
您可以查看文档:download.java.net/java/jdk9/docs/api/java/lang/Process.html 我能看到的唯一明显的东西是
destroy和destroyForcibly,但它们已经存在于 Java 8 中。 -
@JornVernee 是的,我从那里看到了
getPid。只是想知道我是否错过了什么! -
不幸的是,Windows 没有信号,这不是 Java 可以跨平台公开的东西,所以你最好的选择是类似 jnr-posix,尽管它不适用于 Windows [1]。
标签: java process signals java-9