sudoで実行しているときにOS X dtruss出力をリダイレクトするにはどうすればよいですか?


9

dtrussMac OS X 10.9で実行しています。簡単な例は次のとおりです。

sudo -c ls

しかし、dtruss出力をファイルにキャプチャしたいと思います。私は次のようなことができることを示唆する何かを見ました:

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

しかし、これを行うと、出力はdtrussまだターミナルに行き、ファイルのリストがファイルlsにリダイレクトされます。

の出力をdtrussファイルにリダイレクトするにはどうすればよいですか?


1
キャプチャするのは、おそらく魔女ではstderrなくdtrussが書き込むことです。この質問は何をすべきかを説明します:Linuxの動作とstderrが少ないstdout>x
Nifle

回答:


9

私はそれを次のように実行しています:

sudo dtruss -f -p 12345 2> /tmp/trace.txt
  • -f 子プロセスに従うと言います。
  • -p トレースするプロセスIDを指定します。
  • 12345プロセスIDのプレースホルダーです。topまたはを見るとわかりps -Aます。
  • 2>標準エラーを出力ファイルにパイプします。何らかの理由でdtrussはすべてをstderrに出力します。

これが何をするかを説明するために答えを広げてもらえますか?ありがとう。
fixer1234 2015年

「-f」は子プロセスの追跡を示し、「-p」はトレースするプロセスIDを指定します。「2>」は標準エラーを出力ファイルにパイプします。何らかの理由でdtrussはすべてをstderrに出力します。
ルークキナン

12345はプロセスIDのプレースホルダーですか(それはどこから取得されますか)?
fixer1234 2015年

プロセスIDのプレースホルダーです。topまたはを見るとわかりps -Aます。
ルークキナン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.