按照strace官网的描述, strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。
常用用法:查看文件的系统调用??
-o 文件名
将跟踪输出写入指定的文件而不是stderr。
strace -o text.log ./stat.sh //将执行./stat.sh产生的信息打印到text.log中
?完成跟踪时,按ctrl + C 结束strace即可。
具体用法如下
用法1:
通过它启动要跟踪的进程。在原本的命令前加上strace即可。比如我们要跟踪 "./start.sh"?这个命令的执行,可以这样:
strace?./start.sh
用法2:
跟踪已经在运行的进程,在不中断进程执行的情况下,理解它在干嘛。 这种情况,给strace传递个-p pid 选项即可。
查看pid的方法:
Linux查看进程PID的方法(linux查进程的pid)附带自动kill 掉_linux查看pid 对应的程序-CSDN博客
高级shell扩展---pidof命令_shell pidof-CSDN博客?
ps aux //查看所有进程的PID
ps aux | grep // 查看进程名为grep的进程PID
pidof some_server //直接获得进程
//比如,有个在运行的some_server服务,第一步,查看pid:
pidof some_server
输出 :17553
//得到其pid 17553然后就可以用strace跟踪其执行:
strace -p 17553
完成跟踪时,按ctrl + C 结束strace即可。
更多指令参考: