https://blog.csdn.net/weixin_42031299/article/details/125016440
https://blog.csdn.net/oqqHuTu12345678/article/details/75098572
https://www.xjx100.cn/news/283088.html?action=onClick
https://www.cnblogs.com/DataArt/p/10089850.html
目录
proc是什么
在linux系统/proc目录中一些文件,记录一些系统运行时的信息,比如内存信息、网络信息、cpu信息等,但是要注意的是,这个目录下并不是保存真正的文件或者目录,只是一个伪文件系统。它只是保存在内存中,不是持久化的文件。可以理解为内核开放的一个集中查询系统信息的地方,方便查找使用,符合linux文件系统的习惯。
- 需要清楚的
1)proc是基于内存的文件系统,所以文件大小都是0.
2)系统中的top、ps等命令都是通过读取proc文件中的内容,通过重 新编码来显示的
proc目录说明
https://blog.csdn.net/cjdgg/article/details/119860355
/proc/self
/proc/self/目录,这个目录比较独特,不同的进程访问该目录时获得的信息时不同的,内容等价于/proc/本进程pid/。进程可以通过访问/proc/self/目录来获取自己的系统信息,而不用每次都获取pid。
/proc/self等同于/proc/$$
- 获取当前程序名称的多种方式
https://zhuanlan.zhihu.com/p/653334147
/proc/pid
https://blog.csdn.net/qq_21438461/article/details/129807412
挂载信息
https://blog.csdn.net/qq_21438461/article/details/129807412
- mountinfo
对于第4项,如果是通过“绑定挂载”机制挂载的目录,则这里会显示目录本身在宿主里的全路径。
其它
-
ns
查看特定进程所属的所有命名空间的符号链接 -
fd
https://blog.csdn.net/ll148305879/article/details/93751052
查看进程打开的文件列表 -
status
https://blog.csdn.net/xs_chang/article/details/132602282
进程的状态信息 -
stat
进程cpu信息
https://blog.csdn.net/tao546377318/article/details/54342217 -
comm
进程名
task (线程)
https://www.zhihu.com/pin/1627119204166983680
/proc/pid/task/tid/即pid进程下的tid线程
- 统计线程内存
#!/bin/bash
# 进程ID
PID=$1
# 检查是否提供了进程ID
if [ -z "$PID" ]; then
echo "请提供进程ID作为第一个参数"
exit 1
fi
# 检查进程是否存在
if [ ! -d "/proc/$PID" ]; then
echo "进程ID不存在"
exit 1
fi
# 打印每个线程的内存占用信息
for thread in /proc/$PID/task/*/; do
STAT_FILE="$thread/stat"
if [ -r "$STAT_FILE" ]; then
# 读取线程的stat文件获取内存信息
MEM_USAGE=$(grep -o '[0-9]\+' "$STAT_FILE" | head -n 22 | tail -n 1)
echo "线程ID: $(basename $thread) 内存占用: $MEM_USAGE kB"
fi
done
./watch_threads_memory.sh 进程ID
- comm
线程名
0 条评论