通常,如果我使用rmmod
删除内核模块,则运行module_exit
指定的函数。如果没有调用此函数,有rmmod
的某种方式吗??
如果您感到好奇,原因是我已经编写了insmod
'ed一个模块,其退出方法有问题,我不希望在导致内核运行时手动重启远程机器挂起。
我看过man rmmod
,但似乎没有这样的选择。
答案 0 :(得分:1)
执行rmmod
时无法避免卸载模块,因为模块卸载时需要进行一些清理活动,如果没有完成,您将无法通过执行重新加载模块insmod
,因为它会再次调用module_init()
,您可以在其中注册(alloc_chrdev_region()
或register_chrdev()
)您的驱动程序。在不取消注册的情况下重新注册它将导致无法加载模块。
答案 1 :(得分:0)
我不确定这是否符合您的要求,但下次重新编译内核时,您可以启用MODULE_FORCE_UNLOAD选项并尝试rmmod -f