如何在linux中获取进程的进程树跟踪/日志?

时间:2010-10-14 23:03:15

标签: linux ps strace

我想知道脚本启动的可执行文件和顺序(并递归跟踪这些可执行文件)。

例如,假设我在这里有一个bash脚本(称为abc.sh):

#!/bin/bash
ls
gcc

我想用“trace / log命令”运行这个脚本并得到这样的东西:

abc.sh -- ls
      |-- gcc -- cpp
              -- cc1
              ... etc.

这表明abc.sh称为ls和gcc。反过来,gcc称为cpp和cc1。

这可能吗?我该怎么做?像上面这样的树视图会很好,但更简单的视图也可以。

请注意,我不想要进程树的当前快照。相反,我想要产生过程的跟踪或日志。时间注释也很有用。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以尝试分析strace命令的输出。 特别是,你会对像

这样的东西感兴趣
strace -f -tt -e trace=execve ./abc.sh

答案 1 :(得分:0)

您可以使用pstree命令。它的构思是准确显示您正在寻找的内容:进程树(因此名称,pstree)。它不会给你进程跟踪,但你可以多次调用它来获得类似于你正在寻找的东西。