Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想知道当用户空间应用程序/进程被杀死时是否有一个可以在 Linux 内核模块中使用的钩子?
您可以首先在内核模块中注册通知程序链。
在内部get_signal_to_deliver(kernel/signal.c),任何刚刚(这是相对术语恕我直言)被杀死的进程都会设置其PF_SIGNALED标志。在这里,您可以使用其 tcomm 字段检查当前进程的名称,如下所示:
get_signal_to_deliver
char tcomm[sizeof(current->comm)]; get_task_comm(tcomm, current);
如果确实是有问题的过程,您可以触发通知链,这将唤醒您一直在该链上等待的模块。