私は彼らのpidによって与えられた2つのプロセスを持っています:P1とP2。これらのプロセスがソケットを介して通信しているか、他のプロセス間通信メカニズムを介して通信しているかを確認する簡単な方法はありますか?内部で通信している可能性のある、一見無関係に見える2つのアプリがあるため、これを知る必要があります。これが実際に当てはまるかどうかを知りたいのです。
lsof -p P1
とlsof -p P2
を使用して、2つのプロセスによって開かれているファイル記述子を確認できます。次に、それぞれが開いているソケットとパイプのリストを見て、それらのいずれかが同じIDを持っているかどうかを確認できます。
iMac:barmar $ sleep 100 | sleep 100 &
[1] 51885
iMac:barmar $ jobs -l
[1]+ 51884 Running sleep 100
51885 | sleep 100 &
iMac:barmar $ lsof -p 51884 | grep -i pipe
sleep 51884 barmar 1 PIPE 0x491a6929f9ea1ca9 16384 ->0x491a6929f9e9fae9
iMac:barmar $ lsof -p 51885 | grep -i pipe
sleep 51885 barmar 0 PIPE 0x491a6929f9e9fae9 16384 ->0x491a6929f9ea1ca9
最初のプロセスのパイプの宛先IDは、2番目のプロセスのパイプの送信元IDと同じであることに注意してください。これは、それらが同じパイプの両端であることを示しています。