【发布时间】:2012-07-04 12:43:58
【问题描述】:
假设我有一些进程——在本例中是一个由 ant 启动的 Java 进程。我发现随机发送此 Java 进程 SIGTERM。它可能是向自身发送信号的进程,也可能是其他东西。
我已经消除了大部分明显的原因(oom 杀手,父进程杀死孩子等),但我真的想找出 谁 正在发送这个进程的 SIGTERM。有什么方法可以在操作系统或进程级别跟踪此行为?
【问题讨论】:
-
我不知道 java 是否有一些对
sigaction()的本机或包装访问,但是当使用 SA_SIGINFO 字段调用时,pid 和真实 uid 将传递给您设置的处理程序。你也许可以这样抓住你的罪魁祸首。 -
是的,如果它是 C 语言就好了。Java 确实提供了一些有限的信号处理,但无法访问发送者的 pid/uid。
标签: java linux unix process signals