簡體   English   中英

如何確定用戶空間進程是否已連接到netlink內核模塊?

[英]how to find out if userspace process is connected to netlink kernel module?

我目前正在編寫一個小的Linux內核模塊(> 3.10),該模塊應該通過netlink套接字與用戶空間進程進行通信。 雙方的接收和發送數據工作正常。 但是,如何在內核模塊內部找出是否連接了任何用戶空間進程?

此刻,我只是等待流程將數據發送到模塊,並保存流程pid作為答案。 但是,如果我的模塊應該定期從內核到用戶空間發送數據,而沒有用戶空間進程的任何請求,該怎么辦? 是否可以找出是否有插座打開?

我在struct proto發現了一些有趣的回調指針,但似乎不使用它們(用於netlink套接字?)。

Kernel space <> User space通過內核的netlink套接字進行通信。 它們具有hotplug [ udevmodprob等]事件[add,change,remove等],這些事件會在發生主要狀態更改時觸發。

如果您在系統中收聽這些事件,則可以進一步挖掘。

如果您有udev熱插拔,則可以使用以下命令,或者使用以下命令:

udevadm monitor

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM