系统相关
首页 > 系统相关> > 检查Linux内核模块是否正在运行

检查Linux内核模块是否正在运行

作者:互联网

我编写了一个内核模块,该模块在/ proc /中创建一个条目并执行其他一些任务.
我想修改一个现有的内核模块,以检查我的模块是否正在运行,并根据它执行一些语句(或者在不运行时执行其他语句)

有关如何执行此操作的任何建议?

解决方法:

kernel / module.c提供的功能可能会满足您的需求;您首先需要锁定module_mutex,然后使用模块名称调用find_module().结果将是指向描述命名模块的struct模块的指针-如果未加载该模块,则为NULL:

/* Search for module by name: must hold module_mutex. */
struct module *find_module(const char *name)
{
        struct module *mod;

        list_for_each_entry(mod, &modules, list) {
                if (strcmp(mod->name, name) == 0) 
                        return mod;
        }
        return NULL;
}
EXPORT_SYMBOL_GPL(find_module);

标签:kernel,kernel-module,linux
来源: https://codeday.me/bug/20191101/1982726.html