linux – 如何在内核模块中使用proc_pid_cmdline
发布时间:2020-12-13 22:56:14 所属栏目:Linux 来源:网络整理
导读:我正在编写一个内核模块来获取带有完整进程名称的pids列表. proc_pid_cmdline()给出完整的进程名称;使用相同的函数/ proc / * / cmdline获取完整的进程名称. (struct task_struct) – comm提示它是什么过程,但不是完整的路径. 我已经包含了函数名称,但它给出
我正在编写一个内核模块来获取带有完整进程名称的pids列表. proc_pid_cmdline()给出完整的进程名称;使用相同的函数/ proc / * / cmdline获取完整的进程名称. (struct task_struct) – > comm提示它是什么过程,但不是完整的路径.
我已经包含了函数名称,但它给出了错误,因为它不知道在哪里找到函数. 如何在模块中使用proc_pid_cmdline()? 解决方法
你不应该调用proc_pid_cmdline().
在fs / proc / base.c中它是一个non-public function: static int proc_pid_cmdline(struct seq_file *m,struct pid_namespace *ns,struct pid *pid,struct task_struct *task) 但是,它做的很简单: get_cmdline(task,m->buf,PAGE_SIZE); 但这不太可能返回完整路径,并且无法确定每种情况下的完整路径.可以覆盖arg [0]值,可以删除或移动文件等.进程可以以隐藏原始命令行和各种其他疾病的方式执行(). 扫描我的Fedora 20系统/ proc / * / cmdline会出现各种不太有用的结果: -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detecte ernel BUG at list_del corruption list_add corruption do_IRQ: stack overflow: ear stack overflow (cur: eneral protection fault nable to handle kernel ouble fault: RTNL: assertion failed eek! page_mapcount(page) went negative! adness at NETDEV WATCHDOG ysctl table check failed : nobody cared IRQ handler type mismatch Machine Check Exception: Machine check events logged divide error: bounds: coprocessor segment overrun: invalid TSS: segment not present: invalid opcode: alignment check: stack segment: fpu exception: simd exception: iret exception: /var/log/messages -- /usr/bin/abrt-dump-oops -xtD (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在不成为root的情况下运行Windows bash?
- curl命令在CQ中的特定节点的多值属性中添加值
- 在Linux环境中获取类似Active Directory的系统需要什么?
- Liunx之Ubuntu下Django+uWSGI+nginx部署
- linux-kernel – 为什么在重置中断关联时会调用mdelay(1)?
- 如何说服我的同事linux内核代码是重入的?
- 读《Linux命令行与shell脚本编程大全.第3版》
- linux – Haskell:从/ proc读取.严格和懒惰的问题.流程统计
- linux – 使用脚本在bash中创建文件的多个副本
- centos7之firewalld防火墙的配置与使用