【发布时间】:2012-02-15 18:19:09
【问题描述】:
如果用户进程正在使用内核模块,我希望另一个进程不能为该模块触发 rmmod。 如何实现这种功能?
-Linux内核编程初学者。
【问题讨论】:
标签: linux-kernel linux-device-driver
如果用户进程正在使用内核模块,我希望另一个进程不能为该模块触发 rmmod。 如何实现这种功能?
-Linux内核编程初学者。
【问题讨论】:
标签: linux-kernel linux-device-driver
rmmod只能在引用计数为零时卸载模块。
如果在用户进程连接时引用计数增加(并在断开连接时减少),您会没事的。
如果模块暴露了一个设备,或者被挂载为一个文件系统,这应该自然地处理 - 如果不是,我想这将取决于用户空间界面,但这是从哪里开始寻找。
顺便说一下,lsmod 将显示您的模块引用计数。您可以检查它是否在用户空间进程连接时增加。
【讨论】:
Used by 显示引用计数以及引用它的模块列表(即使计数非零,该列表也可能为空,尤其是对于每次挂载都有引用的文件系统模块)。