在Java虚拟机中处理信号

14

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

至少SIGINTSIGKILL应该是相当平台无关的。

2个回答

14

JVM会自行响应信号。一些信号会使JVM正常关闭,并运行关闭挂钩。其他信号会导致JVM在不运行关闭挂钩的情况下中止。

可以使用Runtime.addShutdownHook(Thread)添加关闭挂钩。

我认为JDK没有提供官方方式来处理Java应用程序中的信号。然而,我找到了这篇IBM文章,其中描述了如何使用一些未公开的sun.misc.Signal类来实现此功能。该文章的日期为2002年,使用的是JDK 1.3.1,但我已经确认,在JDK 1.6.0中仍存在sun.misc.Signal类。


本文对任何JVM都有用,但仅适用于IBM JVM(注:本文中描述的信号处理仅适用于IBM JVM版本1.3.1和1.4.2)。 - logoff
我认为这里是IBM文章的新位置。 - dimo414

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接