stdoutへのstrace書き込み呼び出し

stdoutへのstrace書き込み呼び出し

straceを使用してプロセスの標準出力を表示する方法はありますか?私もできることを知っています

strace -p pid -e write

ただし、これは複数のファイル記述子に対するwrite(2)呼び出しを示しています。マニュアルページを読むと、その-e write=オプションも表示されますが、それを使用すると他の多くのコンテンツが得られます。

strace -p pid -e write=1

デフォルトでは、最初のコマンド()の出力が必要ですが、strace -p pid -e write出力write(1,...のみが必要です。私は出力をフィルタリングできることを知っていますが、straceがこれを直接実行する方法があるかどうか疑問に思います。

ベストアンサー1

PIDがわかっている場合は、-Pパラメータを/ procのSTDOUTファイル記述子に関連付けることができます。このように:

strace -p PID -P /proc/PID/fd/1 -e write

/proc/PID/fd でプロセスに対して開いているすべてのファイル記述子を見つけることができます。 1 は STDOUT ファイルへのシンボリックリンクです。

おすすめ記事