lsof 명령을 사용할 수 없는 경우 특정 pid에 대한 활성 unix 도메인 소켓을 어떻게 얻습니까?

lsof 명령을 사용할 수 없는 경우 특정 pid에 대한 활성 unix 도메인 소켓을 어떻게 얻습니까?

lsof를 사용할 권한이 없는 경우 알려진 프로세스의 pid를 어떻게 얻나요? 감사해요

명령이 활성 Unix 도메인 소켓을 인쇄한다는 것을 알고 있지만 netstat -l -p업데이트되지 않는 것 같습니까? 소켓이 닫힌 후에도 netstat 명령 결과에 계속 나타납니다.

답변1

/procLinux에서는 특정 PID 아래에서 파일 시스템을 구체적으로 검색할 수 있습니다 /proc/<pid>/fd. 각 프로세스의 모든 파일 설명자(fd)가 여기에 나열됩니다.

$ ls -l /proc/27634/fd/
total 0
lrwx------ 1 root root 64 Mar 17 20:09 0 -> /dev/null
lrwx------ 1 root root 64 Mar 17 20:09 1 -> /dev/null
lrwx------ 1 root root 64 Mar 17 20:10 10 -> /dev/ptmx
lrwx------ 1 root root 64 Mar 17 20:10 12 -> /dev/ptmx
lrwx------ 1 root root 64 Mar 17 20:10 13 -> /dev/ptmx
lrwx------ 1 root root 64 Mar 17 20:09 2 -> /dev/null
lr-x------ 1 root root 64 Mar 17 20:09 3 -> socket:[430396]
l-wx------ 1 root root 64 Mar 17 20:09 4 -> socket:[430437]
lrwx------ 1 root root 64 Mar 17 20:09 5 -> pipe:[430440]
l-wx------ 1 root root 64 Mar 17 20:10 6 -> pipe:[430440]
lrwx------ 1 root root 64 Mar 17 20:10 7 -> socket:[430443]
lrwx------ 1 root root 64 Mar 17 20:10 8 -> socket:[430444]
lrwx------ 1 root root 64 Mar 17 20:10 9 -> socket:[430446]

거기에 나열된 모든 것은 socket:[....]소켓입니다.

관련 정보