从 Java 9 向进程发送信号

fla*_*kes 5 java signals process java-9

我听说在 Java 9 中他们做了很多工作来更新 Process API。现在是否有一种更简洁的方式向ProcessJava 产生的发送信号?这些信号用作在过程中触发操作的简单方法。

之前我不得不使用反射来获取一个pid然后使用Runtime#exec来发送kill命令。我假设您仍然需要使用,Runtime#exec因为信号可能取决于操作系统,但我很好奇是否有人知道比这更好的方法!

Process p = Runtime.getRuntime().exec(...);
...
Runtime.getRuntime().exec("kill -SIGUSR1 " + p.getPid());
Run Code Online (Sandbox Code Playgroud)

the*_*472 4

信号可能取决于操作系统

是的,Windows 不具有与 posix 操作系统相同的信号。

但我很好奇是否有人知道比这更好的方法!

jnr-posix提供了 libc 的瘦包装器,包括kill。