从 Java 9 向进程发送信号

Sending a signal to a Process from Java 9

我听说 java 9 他们做了很多工作来更新流程 API。现在有没有一种更简洁的方法可以向 Java 生成的 Process 发送信号?这些信号被用作触发流程中操作的简单方法。

之前我不得不用反射得到一个pid然后用Runtime#exec发送kill命令。我假设你仍然需要使用 Runtime#exec 因为信号可能 OS 依赖,但我很好奇是否有人知道比这更好的方法!

Process p = Runtime.getRuntime().exec(...);
...
Runtime.getRuntime().exec("kill -SIGUSR1 " + p.getPid());

signal may be OS dependant

是的,windows 没有相同意义的信号 posix 操作系统有。

but I'm curious if anyone knows a better way than this!

jnr-posix 提供 libc 的精简包装器,包括 kill。