파이프의 다른 쪽 끝에있는 프로세스 찾기


34

몇 가지 프로세스의 이상한 동작을 추적하려고하는데 과거를 추적하는 방법을 잘 모르겠습니다. 내가 사용하는 중단 된 프로세스 strace -p는 다음 을 보여줍니다.

Process 7926 attached - interrupt to quit
read(3, 

좋아, 그래서 fd 3에 입력을 기다리고 있기 때문에 그것이 무엇인지 확인하기 위해 갔다.

$ ls -l /proc/7926/fd/3
lr-x------ 1 user grp 64 Mar 15 10:41 /proc/7926/fd/3 -> pipe:[20043922]

자, 이제 파이프입니다. 이제 질문입니다.이 파이프의 작성자는 누구입니까? 리눅스에는 유닉스 도메인 소켓을위한 특별한 기능이 있는데, 여기서 "추상 소켓 네임 스페이스"에 접근하기 위해 NUL 바이트로 시작하는 파일 경로를 요청할 수 있습니다 ( http://tkhanson.net/cgit.cgi). /misc.git/plain/unixdomain/Unix_domain_sockets.html ). 내가 활용할 수있는 파이프와 비슷한 것이 있는지 확실하지 않지만 아무것도 찾지 못했습니다.

나는 도구 가 도움이 fuser되거나 lsof도움 이되기를 바랐 지만 아무데도 못 갔다.

어떤 아이디어?

답변:


32

심볼릭 링크 "pipe : [20043922]"는 고유 ID입니다. 파이프의 다른 쪽 끝은 일치하는 ID를 갖습니다.

(find /proc -type l | xargs ls -l | fgrep 'pipe:[20043922]') 2>/dev/null

파이프의 양쪽 끝을 보여 주어야합니다.


1
좋은 생각 감사합니다! 조사하는 동안 serverfault.com/questions/48330 / ... 이 스레드를 발견했습니다. 그래서 다른 사람들에게도 링크를 드롭한다고 생각했습니다.
FatalError

2

다음 lsof명령을 사용하여 파이프를 사용하여 프로세스 목록을 얻을 수 있습니다 .

lsof | grep 'FIFO.*20043922'

출력은 판독기 (1r와 같은 항목이있는 FD 열)와 기록기 (2w와 같은 항목이있는 동일한 열)를 표시합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.