用户空间进程上的Linux内核模块信号被杀死

Zed*_*TuX 5 hook linux-kernel kill-process

我想知道是否有一个钩子可以在Linux内核模块中使用,当用户空间应用程序/进程被杀死时会被触发?

Hig*_*eat 2

您可以首先在内核模块中注册通知程序链。

get_signal_to_deliverkernel/signal.c)内部,任何刚刚(这是一个相对术语恕我直言)被杀死的进程都会设置其PF_SIGNALED标志。在这里,您可以使用 tcomm 字段检查当前进程的名称,如下所示:

char tcomm[sizeof(current->comm)];
get_task_comm(tcomm, current);
Run Code Online (Sandbox Code Playgroud)

如果确实是有问题的进程,您可以触发通知链,这将唤醒一直在该链上等待的模块。