5

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

4

1 回答 1

2

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

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

char tcomm[sizeof(current->comm)];
get_task_comm(tcomm, current);

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

于 2014-01-15T07:50:53.393 回答