linux下ss命令源码学习(一):进程名、pid的获取及存储
2016-10-27 18:27
786 查看
linux ss源码学习
进程名、pid的获取及存储
当执行ss -p命令时,会返回进程的名称、pid信息,接下来就分析一下该信息是如何获取及存储的获取
1、当指定p参数时, 会将全局变量show_users进行++操作,之后会执行user_ent_hash_build()函数。
2、
该函数第一步首先获取环境变量PROC_ROOT的值,若为空,则默认路径为/proc/目录
3、
之后读取/proc/pid/stat文件,其中pid指代的是进程的pid
4、
读取文件中括号部分的内容,该内容即为进程名称
存储
1、采用的是hash存储的方式,以进程的socket索引进行地址 寻址,存储进程名、pid等信息,如果地址冲突,则使用链表的形式进行解决
使用
若指定了-P参数,则show_users为1,则进入find_users函数从hash表中获取数据
首先通过socket索引获取hash地址,接着判断获取数据
socket索引的获取方式
进入/proc/进程号/fd目录,进行扫描
黄线部分即为socket索引
相关文章推荐
- linux下ss命令源码学习(二):linux c代码获取后台进程名称及pid
- linux下获取指定exe进程pid和详细信息的命令
- linux获取精准进程PID之pgrep命令
- Linux命令 -- 获取 进程信息:name 、stat 、PID
- linux命令(26):Bash Shell 获取进程 PID
- 使用ps命令获取Linux环境下全部RAC集群进程信息
- linux获取一个进程pid的父进程的两种方法
- Linux命令下的源码学习
- Linux 变干边学 学习笔记之Linux进程、管道和重定向命令
- 进程名字获取进程的进程号PID,类似pidof,C函数,适合linux,AIX和hp-unix平台
- linux 下根据进程名字获取进程的进程号PID
- linux根据pid获取进程名和获取进程pid(c语言获取pid)
- linux下根据进程名字获取PID,类似pidof(转)
- linux 下根据进程名字获取进程的进程号PID,类似pidof,C函数
- Linux用ps命令查找进程PID再用kill命令终止进程的方法
- linux-使用pidstat命令监视某进程的资源使用
- Linux下获取命令源码
- 如何获取linux下的进程pid列表
- Linux用ps命令查找进程PID再用kill命令终止进程的方法
- Linux 运行进程实时监控pidstat命令详解