lsof를 사용할 권한이 없는 경우 알려진 프로세스의 pid를 어떻게 얻나요? 감사해요
명령이 활성 Unix 도메인 소켓을 인쇄한다는 것을 알고 있지만 netstat -l -p
업데이트되지 않는 것 같습니까? 소켓이 닫힌 후에도 netstat 명령 결과에 계속 나타납니다.
답변1
/proc
Linux에서는 특정 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:[....]
소켓입니다.