gpt4 book ai didi

linux - 如何确定用户空间进程是否连接到netlink内核模块?

转载 作者:太空宇宙 更新时间:2023-11-04 03:58:23 26 4
gpt4 key购买 nike

我目前正在编写一个小型 Linux 内核模块 (> 3.10),它应该通过 netlink 套接字与用户空间进程进行通信。双方数据接收和发送工作正常。但是如何在内核模块内部找出是否有任何用户空间进程连接呢?

目前我只是等待进程向模块发送数据,并保存进程pid作为答案。但是,如果我的模块应该定期从内核向用户空间发送数据,而不需要来自用户空间进程的任何请求,该怎么办?是否可以查明是否有任何套接字打开?

我在struct proto中发现了一些有趣的回调指针,但它们似乎没有被使用(用于netlink套接字?)。

最佳答案

Kernel space <> User space通过内核的 netlink 套接字进行通信。他们有热插拔[ udev , modprob等]事件[添加、更改、删​​除等]在发生重大状态更改时触发。

如果您监听系统中的这些事件,您就可以进一步挖掘。

如果你有 udev 热插拔,你可以使用下面的命令,或者有一些旧的命令:

udevadm monitor

关于linux - 如何确定用户空间进程是否连接到netlink内核模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23919997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com