/proc 介绍
/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。
简单来讲,/proc目录即保存在系统内存中的信息。
/proc目录中包含许多以数字命名的子目录,这些数字表示系统当前正在运行进程的进程号(PID),里面包含对应进程相关的多个信息文件。
/proc/self 介绍
/proc/self表示当前进程目录。前面说了通过/proc/$pid/来获取指定进程的信息。如果某个进程想要获取当前进程的系统信息,就可以通过进程的pid来访问/proc/$pid/目录。但是这个方法还需要获取进程pid.为了更方便的获取本进程的信息,linux提供了/proc/self/目录,这个目录比较独特,不同的进程访问该目录时获得的信息是不同的,内容等价于/proc/本进程pid/。进程可以通过访问/proc/self/目录来获取自己的系统信息,而不用每次都获取pid。
如何利用
cmdline
获取当前启动进程的完整命令
cat /proc/self/cmdline
以上命令返回的结果,就是启动当前进程的命令
cwd
cwd 文件是一个指向当前进程运行目录的符号链接。可以通过查看cwd文件获取目标指定进程环境的运行目录
ls /proc/self/cwd
exe
获取当前进程的可执行文件的完整路径
ls -al /proc/self/exe
environ
获取当前进程的环境变量信息
cat /proc/self/environ
maps
/proc/self/maps的内容是当前进程的内存映射关系,可通过读取该文件来得到内存数据映射的地址。
字段值依次为:内存区域--权限--文件在内存中的偏移量--设备号--文件索引节点--路径
路径中/usr/bin/cat表示二进制文件
mem
/proc/self/mem的内容是当前进程的内存映射关系,可通过读取该文件来得到内存数据映射的地址。但是注意该文件不能直接读取,因为文件中存在着一些无法读取的未被映射区域。所以要结合/proc/self/maps中的偏移地址进行读取。通过参数start和end及偏移地址值读取内容。
链接:https://www.cnblogs.com/MrSoap/p/18228926
-
内核
+关注
关注
3文章
1357浏览量
40170 -
Linux
+关注
关注
87文章
11191浏览量
208617 -
文件系统
+关注
关注
0文章
284浏览量
19866 -
Proc
+关注
关注
0文章
12浏览量
8993
原文标题:Linux中/proc 介绍指南
文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论