c - insmod 返回 Killed 可能是因为 task_struct
问题描述
我访问当前进程的结构以获取内核空间中 Linux 模块中当前进程的进程 ID 和命令名称,但是当我使用构建模块make
然后将其插入内核时,insmod
返回Killed
然后我不能甚至从内核中删除我的模块。
这里有什么问题吗?
如您所见,我也尝试使用task_struct
as global,但我得到了相同的结果。
#include <linux/module.h>
#include <linux/init.h>
#include <linux/sched.h>
// #include <linux/moduleparam.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("whoami");
MODULE_DESCRIPTION("Simple LKM");
// char *to_say = "Nothing";
// struct task_struct *current_process;
// module_param(to_say, charp, S_IRUGO);
static int __init initialization_function(void)
{
struct task_struct *current_process;
printk(KERN_INFO "Module: pid - %d, command name - %s\n", current_process->pid, current_process->comm);
return 0;
}
static void __exit cleanup_funcion(void)
{
printk(KERN_INFO "Module: Bye, World.");
}
module_init(initialization_function);
module_exit(cleanup_funcion);
$ make all
$ sudo insmod my_module.ko
Killed
$ tail -f /var/log/syslog | grep "Module:"
$ sudo rmmod my_module
cannot remove...
我修复了错误,我只是current_process
用current
.
struct task_struct *current_process = current;
printk(KERN_INFO "Module: pid - %d, command name - %s\n", current_process->pid, current_process->comm);
解决方案
推荐阅读
- npm - 如何使用 xlsx npm 包写入特定单元格
- json - Spring rest 模板无法从 text/html 转换
- go - 迭代复数
- javascript - 在 Ember.js 上使用 bower install 安装 dygraphs 失败
- python - 用 python 转换一个 .dat 文件
- xquery - 如何解决 XDMP-CONFLICTINGUPDATES?
- delphi - 导出到 Word“Docx”期间的快速报告 5 VCL 问题。"µg/kg" 被导出为 "µg/kg"
- groovy - 带有 SoapUI groovy 的 Shell 命令
- jenkins - 在管道共享库中使用外部依赖项
- python-3.x - PyCharm (Python 3.6) 控制台中的全局变量值