You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中sun.misc.Signal可用信号及对应整数值技术咨询

Java中sun.misc.Signal支持的信号名称及对应值

sun.misc.Signal是Java的内部非公开API,其支持的信号完全依赖底层JVM和操作系统的实现,不同厂商(Oracle/OpenJDK、IBM等)、不同操作系统(Unix/Linux、macOS、Windows)的支持范围和对应数值会有差异,因为它直接调用JVM的本地代码实现信号映射。

一、Oracle/OpenJDK(Unix/Linux、macOS)

这类JDK的信号基本和系统原生信号一一对应,常见可使用的信号及对应数值如下:

  • HUP:1
  • INT:2(通常由Ctrl+C触发)
  • QUIT:3
  • ILL:4
  • TRAP:5
  • ABRT:6
  • BUS:7
  • FPE:8
  • USR1:10
  • SEGV:11
  • USR2:12
  • PIPE:13
  • ALRM:14
  • TERM:15(默认进程终止信号)
  • CHLD:17
  • CONT:18
  • TSTP:20
  • TTIN:21
  • TTOU:22

注意:KILL(9)、STOP(19)这类系统强制终止/暂停信号无法被Java程序通过sun.misc.Signal捕获。Windows系统下Oracle/OpenJDK支持的信号非常有限,仅INT、TERM等少数信号可用,且数值与Unix系统不同。

二、IBM JDK

IBM JDK的信号支持结合了系统原生信号和JVM自身扩展,基础信号(如HUP、INT、QUIT等)的数值和Unix系统一致,同时还有部分针对IBM JVM调试、监控的特有信号,具体支持范围需参考对应版本的IBM JVM文档。

重要提示

  1. sun.misc.Signal从Java 9开始已被标记为废弃,官方不推荐使用,建议替代方案:
    • 处理外部进程信号用java.lang.ProcessHandle
    • 自定义进程内信号逻辑可通过应用级别的事件机制实现
  2. 不要硬编码信号数值,实际使用时可通过Signal.getNumber(String signalName)方法动态获取对应系统下的数值,避免跨平台兼容问题。

内容的提问来源于stack exchange,提问作者Ismail Yavuz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 00:20:16