2012-01-27 71 views
13

当我尝试rmmod模块时,出现错误消息“Error:Module in use”,lsmod | grep显示计数。有没有一种方法可以告诉我哪些进程正在使用这个特定的内核模块/驱动程序? 谢谢如何找到使用特定内核模块的进程列表?

+0

可能重复的[有没有办法找出什么是使用Linux内核模块?](http://stackoverflow.com/questions/448999/is-there-a-way-to-figure-out-什么是使用Linux内核模块) – 2012-01-27 06:27:10

回答

5

This was asked before,但没有很好的答案,可能是因为没有好的方法来完成找到什么是使用什么。

最好的建议是dmesg并寻找什么加载模块的指示。

如果您的内核支持它,您也可以尝试使用--force参数到rmmod

+2

请注意,使用'rmmod --force'可能会使系统处于未定义状态,特别是在实际使用模块的情况下。我不会推荐使用它,除非仅作为最后的手段。 – Eugene 2012-01-28 09:02:10

+3

除了'dmesg'之外,在[answer](http://stackoverflow.com/a/449179/689077)中提到的对上述问题提及的'lsof'(“list open files”)命令在某些情况下仍然有帮助案例。特别是在处理已创建字符设备的文件系统模块和模块时,可能有助于找出哪个进程打开了由模块提供服务的文件并保持打开状态。 – Eugene 2012-01-28 09:06:15