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——列出系统中所有的进程相关推荐

  1. [转]HOWTO do Linux kernel development - take 3 (中文版)

    打好linux基础,不断的跟随这篇文章中的建议,适应linux kernel开发的流程.虽然需要很久甚至几年的时间,但我相信坚持就会前进!加油! HOWTO do Linux kernel devel ...

  2. Linux Kernel Development读书笔记

    <Linux内核情景分析>这本书读过了一遍,不想继续读第二遍了.     <Linux Kernel Development>这本书前后读了3遍,写得实在是好,正所谓" ...

  3. linux列举网卡,linux下快速列出局域网中所有主机名(计算机名)的脚本

    linux下快速列出局域网中所有主机名(计算机名)的脚本,脚本,主机名,网中,站长站,命令 linux下快速列出局域网中所有主机名(计算机名)的脚本 易采站长站,站长之家为您整理了linux下快速列出 ...

  4. linux下上传系统中文件到gitHub

    linux下上传系统中文件到gitHub 一: 1系统下生成公钥 #ssh-keygen 一路回车即可 2对公钥进行复制 #cat .shh/id_rsa.pub 3将公钥复制到github中 首先要 ...

  5. linux查看pid对应的进程,linux系统中快速查看进程pid的方法

    linux系统中快速查看进程pid的方法 一个很简单的'命令,pgrep,可以迅速定位包含某个关键字的进程的pid:使用这个命令,再也不用ps aux 以后去对哪个进程的pid了 用法: pgrep ...

  6. 16进制 ksh_AIX系统中如何统计进程打开的文件数目

    作者:李烨楠 中国建设银行 来自微信公众号:平台人生 环境: AIX 6.1 AIX7.1 前言: 用户有时需要统计一个进程打开的文件数目,比如,在当前打开文件句柄使用量是否超过用户资源限制(/etc ...

  7. 遍历系统中所有的进程,可根据名字或ID查找某一个线程

    我们这根据名字查找进程,获取其ID 1 /*@brief 获取找到的与指定进程名相符的第一个进程ID 2 * @param [in] cpszExeFileName 进程可执行文件名(不带路径) 3 ...

  8. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )

    文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...

  9. Windows系统中常见的进程DOS操作命令

    Windows系统中常见的进程DOS操作命令 1. 查看指定端口的占用情况 语法: netstat -aon | findstr 端口号 例如:查看目前已经启动的nginx进程号 netstat -a ...

最新文章

  1. Brute Force STL --- UVA 146 ID Codes
  2. Understand one Simple Factory Pattern
  3. 彩光和灰光模块_5G承载网主要光模块图谱
  4. array_fill_PHP array_fill()函数与示例
  5. 【联盛德W806上手笔记】一、开发环境和烧录程序
  6. 引用到网站绝对路径Server.MapPath(~/myfile.mdb)
  7. 项目思考001---近期这个电台购物项目的一点点思考
  8. 孙鑫VC学习笔记:第二十讲 (一) Hook编程
  9. DDD中的Specification模式
  10. 最近win7更新后出现第二次打开IDE(delphi2007)的时候提示无法打开EditorLineEnds.ttr这个文件...
  11. 【计算机视觉】pycharm自制一个吉他扒谱软件(附源码)
  12. centos8干净卸载mysql
  13. 想搬去苏州生活了。。
  14. [笑话]让古龙看了要痛哭的高考作文(作品相当强,但得了零分,据说被破格入取了)!!!...
  15. AV1代码学习:解码端aomdec.c的main函数
  16. 02 C/C++创建tcl自定义命令
  17. iOS开发 黑暗模式
  18. ❤️ 炒 股 实 战丨原 地 起 飞 ❤️
  19. 二维码制作方法有哪些?教你简单的二维码制作方法
  20. 云计算Linux运维——Linux系统——软件管理

热门文章

  1. hikvision v2.3控件网页demo_《快速掌握PyQt5》第三十章 网页交互QWebEngineView
  2. Java并发编程实战_一线大厂架构师整理:java并发编程实践教程
  3. 使用xslt将.xml,转换成一个html网页时中文显示乱码怎么办,用dom将数据写到xml中 设置xml文件gbk编码时中文会出现乱码...
  4. 局域网访问php forbidden,PHP访问时Forbidden403错误
  5. linux 监控命令free,简单了解Linux性能监控命令free
  6. 【rbd 删除失败】rbd: error: image still has watchers
  7. 【存储知识学习】第三章磁盘原理与技术3.4硬盘接口技术和SCSI硬盘接口--《大话存储》阅读笔记
  8. 中国移动系统集成公司2020春招技术综合在线编程题第二题
  9. (三)虚拟化技术重点笔记与总结
  10. 《系统集成项目管理工程师》必背100个知识点-30工作分解结构(WBS)分解形式