質問: unix / linuxでプロセス間通信を傍受する方法はありますか? ネットワークトラフィックを傍受/分析するために、 wireshark というユーティリティがあります。unix/linuxの任意の2つのプロセス間のすべてのプロセス間通信を傍受するための同様のユーティリティはありますか?メモリ内にいくつかのプロセスを作成しましたが、それらが互いにどのように通信するかをプロファイルする必要があります。
回答: これにより、プロセスが読み書きする内容が表示されます。strace -ewrite -p $pid クリーンな出力ではありませんが(write(#、)のような行を表示します)、機能します! (そして、単一行:dです)引数が省略されているという事実も嫌いかもしれません。これを制御するには、表示される文字列の最大長を設定する-sパラメータを使用します。すべてのストリームをキャッチするので、なんとかしてフィルタリングすることをお勧めします。あなたはそれをフィルタリングすることができます:strace -ewrite -p $pid 2>&1 | grep "write(1" 記述子1の呼び出しのみを示しています。 2>&1は、straceがデフォルトでstderrに書き込むため、stderrをstdoutにリダイレクトします。