P1과 P2라는 두 개의 프로세스가 있습니다. 이러한 프로세스가 소켓이나 다른 프로세스 간 통신 메커니즘을 통해 통신하는지 확인하는 쉬운 방법이 있습니까? 겉보기에 관련이 없어 보이는 두 개의 응용 프로그램이 뒤에서 통신할 수 있기 때문에 이를 알아야 하며 이것이 실제로 사실인지 알고 싶습니다.
답변1
두 프로세스에서 열린 파일 설명자를 사용 lsof -p P1
하고 볼 수 있습니다. lsof -p P2
그런 다음 각각의 열린 소켓 및 파이프 목록을 보고 동일한 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는 두 번째 프로세스의 파이프 소스 ID와 동일합니다. 이는 동일한 튜브의 두 끝임을 보여줍니다.