检查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