处理 Java 虚拟机中的信号

2022-09-04 20:33:12

是否可以在 Java 虚拟机中处理 POSIX 信号?

至少SIGINTSIGKILL应该完全独立于平台。


答案 1

JVM 自行响应信号。有些会导致 JVM 正常关闭,其中包括运行关闭钩子。其他信号将导致 JVM 中止而不运行关机挂钩。

Shutdown hooks 是使用 Runtime.addShutdownHook(Thread) 添加的

我不认为JDK提供了一种在Java应用程序中处理信号的官方方法。但是,我确实找到了这篇IBM文章,其中描述了使用一些未记录的类来做到这一点。这篇文章可以追溯到2002年,使用JDK 1.3.1,但我确认该类仍然存在于JDK 1.6.0中。sun.misc.Signalsun.misc.Signal


答案 2

推荐