【问题标题】:Handle signals in the Java Virtual Machine在 Java 虚拟机中处理信号
【发布时间】:2010-09-07 14:38:45
【问题描述】:

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

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

【问题讨论】:

    标签: java jvm process posix signals


    【解决方案1】:

    JVM 自己响应信号。有些会导致 JVM 正常关闭,其中包括运行关闭挂钩。其他信号将导致 JVM 在不运行关闭挂钩的情况下中止。

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

    我不认为 JDK 提供了一种官方方式来处理 Java 应用程序中的信号。但是,我确实找到了this IBM article,它描述了使用一些未记录的sun.misc.Signal 类来做到这一点。这篇文章从 2002 年开始,使用 JDK 1.3.1,但我已经确认 sun.misc.Signal 类仍然存在于 JDK 1.6.0 中。

    【讨论】:

    • 本文可能对任何 JVM 有用,但它仅适用于 IBM JVM(注意:本文中描述的信号处理仅适用于 IBM JVM,版本 1.3.1 和 1.4.2 .)
    • 我认为this 是IBM 文章的新位置。
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      • 2014-05-03
      • 2011-03-03
      • 2013-01-03
      • 1970-01-01
      • 2014-04-17
      相关资源
      最近更新 更多