SuperAPI AI 工具集

strace

部署与运维

查看项目

更新于 10-16 06:22

技能介绍

用途:strace 跟踪进程或命令发起的系统调用与信号,是诊断进程无法打开文件、连接网络等问题的首选工具。

主要能力:可从启动开始跟踪新进程(strace cmd arg1 arg2)、附加到运行中的 PID(strace -p 1234)、跟踪子进程与线程(-f)、按系统调用过滤(-e trace=open,read,write)、跟踪文件类(-e trace=file)或网络类(-e trace=network)调用、跟踪信号(-e signal=all)、加时间戳(-t)、显示调用耗时(-T)、汇总调用次数与时间(-c)、输出到文件(-o /tmp/trace.txt)、增大字符串显示长度(-s 200)。组合示例:strace -f -p 1234 -e trace=file -o /tmp/trace.txt。

安装:apt install strace 或 dnf install strace。无持久配置与日志,直接调用,输出到终端。

限制与常见问题:非 root 或 kernel.yama.ptrace_scope 为 1+ 时附加会报 Operation not permitted,需 sudo 或临时 sysctl kernel.yama.ptrace_scope=0;附加会短暂暂停目标进程,对延迟敏感服务有影响,可用 -c 汇总模式减少附加时长;默认字符串截断为 32 字节,用 -s 增大;setuid 二进制对非 root 静默失败,需 root;容器或沙箱中 seccomp/AppArmor 可能阻止 ptrace,Docker 可加 --cap-add=SYS_PTRACE,调试时可临时 --security-opt seccomp=unconfined;-f 输出交错,建议配合 -o 写文件后按 PID 过滤;高频系统调用时终端输出会拖慢双方,应始终用 -o 写文件。未过滤的 strace 输出量极大,应始终用 -e trace 过滤。