/proc的相关知识

打印 上一主题 下一主题

主题 642|帖子 642|积分 1926

/proc的相关知识

/proc 介绍

/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,乃至可以通过更改此中某些文件来改变内核的运行状态。
简单来讲,/proc 目次即生存在系统内存中的信息。
/proc 目次中包含很多以数字命名的子目次,这些数字表现系统当前正在运行进程的进程号(PID),里面包含对应进程相关的多个信息文件。
/proc/self 介绍

/proc/self 表现当前进程目次。前面说了通过/proc/$pid/来获取指定进程的信息。如果某个进程想要获取当前进程的系统信息,就可以通过进程的pid来访问/proc/$pid/目次。但是这个方法还必要获取进程pid.为了更方便的获取本进程的信息,linux提供了 /proc/self/ 目次,这个目次比较独特,不同的进程访问该目次时得到的信息是不同的,内容等价于 /proc/本进程pid/ 。进程可以通过访问/proc/self/ 目次来获取自己的系统信息,而不用每次都获取pid。
如何利用

cmdline

获取当前启动进程的完整命令
  1. cat /proc/self/cmdline
复制代码
以上命令返回的效果,就是启动当前进程的命令
cwd

cwd 文件是一个指向当前进程运行目次的符号链接。可以通过查看cwd文件获取目标指定进程环境的运行目次
  1. ls /proc/self/cwd
复制代码
exe

获取当前进程的可实行文件的完整路径
  1. ls -al /proc/self/exe
复制代码
environ

获取当前进程的环境变量信息
  1. cat /proc/self/environ
复制代码
maps

/proc/self/maps 的内容是当前进程的内存映射关系,可通过读取该文件来得到内存数据映射的地址。
字段值依次为:内存区域--权限--文件在内存中的偏移量--装备号--文件索引节点--路径
路径中/usr/bin/cat 表现二进制文件

mem

/proc/self/mem 的内容是当前进程的内存映射关系,可通过读取该文件来得到内存数据映射的地址。但是注意该文件不能直接读取,因为文件中存在着一些无法读取的未被映射区域。所以要联合/proc/self/maps中的偏移地址进行读取。通过参数start和end及偏移地址值读取内容。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南飓风

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表