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


9

dtruss在Mac OS X 10.9上运行。一个简单的例子是:

sudo -c ls

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

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

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

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


1
dtruss可能捕获的是stderr代替stdout女巫写的东西>x。这个问题说明了该怎么做:Linux少了行为和stderr
Nifle 2014年

Answers:


9

我一直这样运行它:

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

您能否扩大答案以解释其作用?谢谢。
fixer1234

“ -f”表示跟随子进程,“-p”指定要跟踪的进程ID,“ 2>”将标准错误传递到输出文件中。出于某种原因,dtruss在stderr上输出所有内容。
路加·奎纳内

12345是进程ID的占位符(它是从哪里来的)?
fixer1234 2015年

它是进程ID的占位符。您可以通过查看top或获得ps -A
路加·奎纳内
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.