使用 sudo 运行时如何重定向 OS X dtruss 输出?

使用 sudo 运行时如何重定向 OS X dtruss 输出?

dtruss我在 Mac OS X 10.9 上运行。简单示例如下:

sudo -c ls

但我想将dtruss输出捕获到文件中。我看到一些东西建议我可以做类似的事情:

sudo bash -c 'dtruss -c ls >x'

但是当我这样做时,输出dtruss仍然会转到终端,并且文件列表ls会重定向到该文件。

如何将输出重定向dtruss至文件?

答案1

我一直像这样运行它:

sudo dtruss -f -p 12345 2> /tmp/trace.txt
  • -f表示要跟踪子进程。
  • -p指定要跟踪的进程 ID。
  • 12345是进程 ID 的占位符。您可以通过查看top或来获取该进程 ID ps -A
  • 2>将标准错误通过管道传输到输出文件中。出于某种原因,dtruss 会将所有内容输出到 stderr 上。

相关内容