从Java 9向Process发送信号

我在
java 9中听到他们做了很多工作来更新Process API.现在是否有更简洁的方法将信号发送到由
Java生成的进程?信号用作触发过程中动作的简单方法.

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

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.

点赞