Linux Kernel Development——列出系统中所有的进程
1. 在内核模块中列出所有的进程:
从init_task开始遍历内核链表,输出所有进程
#include <linux/module.h> #include <linux/list.h> #include <linux/init.h> #include <linux/sched.h>MODULE_LICENSE("Dual BSD/GPL");static int test_init(void) {struct task_struct *task, *p;struct list_head *pos;int count=0;printk(KERN_ALERT "test module init\n");task=&init_task;list_for_each(pos, &task->tasks){p=list_entry(pos, struct task_struct, tasks);count++;printk(KERN_ALERT "%s[%d]\n", p->comm, p->pid);}printk(KERN_ALERT "Total %d tasks\n", count);return 0; }static void test_exit(void) {printk(KERN_ALERT "test module exit!\n"); }module_init(test_init); module_exit(test_exit);
Makefile
ifneq ($(KERNELRELEASE),)obj-m := test.o elseKDIR := /lib/modules/$(shell uname -r)/buildPWD := $(shell pwd)default:$(MAKE) -C $(KDIR) M=$(PWD) modules endif
2. 使用Systemtap输出所有进程:
//process_list.stp%{ #include <linux/list.h> #include <linux/sched.h> %}function process_list () %{ struct task_struct *p;struct list_head *_p,*_n;for_each_process(p){_stp_printf("%-15s (%-5d)\n",p->comm,p->pid);} %}probe begin { process_list();exit() }
运行方法
# stap -g process_list.stp init (1 ) kthreadd (2 ) migration/0 (3 ) ksoftirqd/0 (4 ) migration/0 (5 ) watchdog/0 (6 ) migration/1 (7 ) migration/1 (8 ) ksoftirqd/1 (9 ) watchdog/1 (10 ) events/0 (11 ) events/1 (12 ) cpuset (13 ) khelper (14 ) netns (15 ) ....
3. 使用Systemtap打印进程uts命名空间信息
//namespace_uts.stp%{#include<linux/list.h>#include<linux/sched.h>#include <linux/nsproxy.h>#include<linux/utsname.h>%}function process_list ()%{struct task_struct *p;struct list_head *_p,*_n;struct uts_namespace *uts;struct new_utsname *utsname;for_each_process(p){uts=p->nsproxy->uts_ns;utsname=&(uts->name);_stp_printf("%-15s(%-5d) %-24s %-16s\n", p->comm,p->pid,utsname->release, utsname->sysname);}%}probe begin{process_list();exit()}
# stap -g namespace_uts.stp init (1 ) 2.6.32-220.el6.x86_64 Linux kthreadd (2 ) 2.6.32-220.el6.x86_64 Linux migration/0 (3 ) 2.6.32-220.el6.x86_64 Linux ksoftirqd/0 (4 ) 2.6.32-220.el6.x86_64 Linux migration/0 (5 ) 2.6.32-220.el6.x86_64 Linux watchdog/0 (6 ) 2.6.32-220.el6.x86_64 Linux migration/1 (7 ) 2.6.32-220.el6.x86_64 Linux migration/1 (8 ) 2.6.32-220.el6.x86_64 Linux ....
本文转自feisky博客园博客,原文链接:http://www.cnblogs.com/feisky/archive/2013/03/04/2943517.html,如需转载请自行联系原作者
Linux Kernel Development——列出系统中所有的进程相关推荐
- [转]HOWTO do Linux kernel development - take 3 (中文版)
打好linux基础,不断的跟随这篇文章中的建议,适应linux kernel开发的流程.虽然需要很久甚至几年的时间,但我相信坚持就会前进!加油! HOWTO do Linux kernel devel ...
- Linux Kernel Development读书笔记
<Linux内核情景分析>这本书读过了一遍,不想继续读第二遍了. <Linux Kernel Development>这本书前后读了3遍,写得实在是好,正所谓" ...
- linux列举网卡,linux下快速列出局域网中所有主机名(计算机名)的脚本
linux下快速列出局域网中所有主机名(计算机名)的脚本,脚本,主机名,网中,站长站,命令 linux下快速列出局域网中所有主机名(计算机名)的脚本 易采站长站,站长之家为您整理了linux下快速列出 ...
- linux下上传系统中文件到gitHub
linux下上传系统中文件到gitHub 一: 1系统下生成公钥 #ssh-keygen 一路回车即可 2对公钥进行复制 #cat .shh/id_rsa.pub 3将公钥复制到github中 首先要 ...
- linux查看pid对应的进程,linux系统中快速查看进程pid的方法
linux系统中快速查看进程pid的方法 一个很简单的'命令,pgrep,可以迅速定位包含某个关键字的进程的pid:使用这个命令,再也不用ps aux 以后去对哪个进程的pid了 用法: pgrep ...
- 16进制 ksh_AIX系统中如何统计进程打开的文件数目
作者:李烨楠 中国建设银行 来自微信公众号:平台人生 环境: AIX 6.1 AIX7.1 前言: 用户有时需要统计一个进程打开的文件数目,比如,在当前打开文件句柄使用量是否超过用户资源限制(/etc ...
- 遍历系统中所有的进程,可根据名字或ID查找某一个线程
我们这根据名字查找进程,获取其ID 1 /*@brief 获取找到的与指定进程名相符的第一个进程ID 2 * @param [in] cpszExeFileName 进程可执行文件名(不带路径) 3 ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )
文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...
- Windows系统中常见的进程DOS操作命令
Windows系统中常见的进程DOS操作命令 1. 查看指定端口的占用情况 语法: netstat -aon | findstr 端口号 例如:查看目前已经启动的nginx进程号 netstat -a ...
最新文章
- Brute Force STL --- UVA 146 ID Codes
- Understand one Simple Factory Pattern
- 彩光和灰光模块_5G承载网主要光模块图谱
- array_fill_PHP array_fill()函数与示例
- 【联盛德W806上手笔记】一、开发环境和烧录程序
- 引用到网站绝对路径Server.MapPath(~/myfile.mdb)
- 项目思考001---近期这个电台购物项目的一点点思考
- 孙鑫VC学习笔记:第二十讲 (一) Hook编程
- DDD中的Specification模式
- 最近win7更新后出现第二次打开IDE(delphi2007)的时候提示无法打开EditorLineEnds.ttr这个文件...
- 【计算机视觉】pycharm自制一个吉他扒谱软件(附源码)
- centos8干净卸载mysql
- 想搬去苏州生活了。。
- [笑话]让古龙看了要痛哭的高考作文(作品相当强,但得了零分,据说被破格入取了)!!!...
- AV1代码学习:解码端aomdec.c的main函数
- 02 C/C++创建tcl自定义命令
- iOS开发 黑暗模式
- ❤️ 炒 股 实 战丨原 地 起 飞 ❤️
- 二维码制作方法有哪些?教你简单的二维码制作方法
- 云计算Linux运维——Linux系统——软件管理
热门文章
- hikvision v2.3控件网页demo_《快速掌握PyQt5》第三十章 网页交互QWebEngineView
- Java并发编程实战_一线大厂架构师整理:java并发编程实践教程
- 使用xslt将.xml,转换成一个html网页时中文显示乱码怎么办,用dom将数据写到xml中 设置xml文件gbk编码时中文会出现乱码...
- 局域网访问php forbidden,PHP访问时Forbidden403错误
- linux 监控命令free,简单了解Linux性能监控命令free
- 【rbd 删除失败】rbd: error: image still has watchers
- 【存储知识学习】第三章磁盘原理与技术3.4硬盘接口技术和SCSI硬盘接口--《大话存储》阅读笔记
- 中国移动系统集成公司2020春招技术综合在线编程题第二题
- (三)虚拟化技术重点笔记与总结
- 《系统集成项目管理工程师》必背100个知识点-30工作分解结构(WBS)分解形式