strace

程序是一些保存在磁盘上的指令的有序集合,是静态的。
进程是程序执行的过程,包括了动态创建、调度和消亡的整个过程,它是程序资源管理的最小单位。
线程是操作操作系统能够进行运算调度的最小单位

ps -ef

strace:跟踪进程内部的系统调用和信号
1)启动新的进程:strace python sdf.py
2)附着到已启动的进程上:strace -p pid :看到进程执行时候都调用了哪些系统调用

root@ip-10-138-0-103:/home/ubuntu/zcy# strace -p 25165
strace: Process 25165 attached
select(0, NULL, NULL, NULL, {0, 156808}) = 0 (Timeout)
write(1, "222\n", 4) = 4
write(1, "1111\n", 5) = 5
select(0, NULL, NULL, NULL, {2, 0}) = 0 (Timeout)
write(1, "222\n", 4) = 4
write(1, "1111\n", 5) = 5
select(0, NULL, NULL, NULL, {2, 0}) = 0 (Timeout)
write(1, "222\n", 4) = 4
write(1, "1111\n", 5) = 5

pstack可以看到进程内启动的线程号,每个进程内线程的「堆栈」内容也能看到
pstack pid

pstree按树形结构打印运行中进程结构信息
pstree -p pid


/proc/pid/environ 包含了进程的可用环境变量的列表
/proc/pid/cmdline 该文件保存了进程的完整命令行
/proc/pid/cwd一个符号连接, 指向进程当前的工作目录
/proc/pid/exe包含了正在进程中运行的程序链接
/proc/pid/fd/ 这个目录包含了进程打开的每一个文件的链接。从这里可以查看进程打开的文件描述符信息,包括标准输入、输出、错误流,进程打开的socket连接文件描述符也能看到,lsof命令也有类似的作用。
/proc/pid/mem包含了进程在内存中的内容
/proc/pid/statm包含了进程的内存使用信息

posted on   我和你并没有不同  阅读(377)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-04-05 flask读书笔记
2019-04-05 前端知识
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示