【发布时间】:2010-11-10 13:13:53
【问题描述】:
我知道 /sbin/init 对来自内核的SIGKILL 和SIGSTOP 有特殊保护,原因很明显。
我尝试告诉内核我想用ioctl() 接收SIGSTOP(类似于main() 中的SIGABRT 和SIGSEGV reqs):
if (ioctl (0, KDSIGACCEPT, SIGSTOP) == 0) {
nih_signal_set_handler (SIGSTOP, stop_handler);
但是SIGSTOP 没有到达stop_handler()(据我所知,nih_error() 没有打印在日志中)。
在stop_handler() 中,我将SIGSTOP 信号处理程序重置为SIG_DFL(否则它无论如何都会返回到我们的处理程序),但这可能会导致它再次被内核忽略。
如何告诉内核我想让 init STOPPED?
【问题讨论】:
-
也许您可以解释一下您要达到的目标是什么?
标签: linux linux-kernel signals init sigkill