首页/系统/Linux 运维命令速查/strace 跟踪系统调用
本包目录(613 条)
文件与目录76 条文本处理77 条网络命令82 条
进程与作业69 条
磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

strace 跟踪系统调用

跟踪进程与内核的交互:attach 运行中进程(-p)、跟随子进程(-f)、过滤调用(-e)、统计耗时(-T/-c),定位卡死/报错根因。

Linux 运维命令速查系统更新于 2026-10-12
用途系统调用级追踪与诊断
语法strace [选项] [命令| -p PID]
常用-f 跟随 -e trace=类别 -o 落盘 -T 每调用耗时 -c 汇总

常用示例

常用示例
strace -f -p 1234 -o /tmp/tr.log     # 附着并落盘(先看几秒再 Ctrl+C)
strace -e trace=openat,stat ./app    # 只看文件相关调用
strace -c ./app                      # 调用次数与耗时汇总
strace -T -e trace=network -p 1234    # 网络调用 + 每次耗时
strace -s 256 -e trace=execve ./app   # 看执行参数(拉长字符串)
strace 会显著拖慢目标(ptrace 每次调用都停下):生产 attach 尽量限时并缩小 -e 范围;调试完务必 detach。

易错点

  • attach 别人的进程被拒(EACCES):内核 yama ptrace_scope 限制,需 root 或调整 sysctl(评估安全)
  • 输出量巨大:不 -o 落盘 + 及时 Ctrl+C,终端会被刷爆

数据来源与参考

  • man 1 strace(strace 官方手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌