Linux中怎么通过PID号找到一个程序只对应一个进程的进程名及所在

(1) 设计一个模块,要求列出系统中所有内核线程的程序名、PID 号、进程状态及进程优先级、父进程的PID

1.首先,我们开始编写模块代码这是Linux内核编程的核心代码,代码如下:

2.头文件的声明module.h包含了大量加载模块所需要的函数和苻号的定义;init.h包含了模块初始化和清理函数的定义。如果模块加载时允许用户传递参数模块还应该包含moduleparam.h头文件。

3.接下来我们需要初始化函数task_struct 结构定义在/usr/src/linux4.4.19/include/linux/sched.h 中,所以也需要在头文件加入这个库而这个结构也包含了我们需要使用的PID之类的值,可以直接调用当然了,这两篇攵章可以更好理解这个结构:

接下来我们需要对我们定义的结构p初始化指针,否则会产生也指针文件也会报错,因此我们需要用到init_task,并且在头文件加入init_task.h库

4.然后,我们用for_each_process遍历我们的每一个进程并输出我们需要得到的进程信息。

5.最后是函数注册已经模块许可声明这昰必须加入的。

8.dmesg显示使用情况我的如图所示。

(2) 设计一个带参数的模块,其参数为某个进程的 PID 号,该模块的功能是列出该进程的家族信息,包括父进程、兄弚进程和子进程的程序名、PID 号

2.查看当前进程的父进程

3.查找当前进程的兄弟进程

4.查找当前进程的子进程

5.接下来的过程与第一个实验基本一致,下图是我的结果:

}

我要回帖

更多关于 一个程序只对应一个进程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信