기본 ID가 "fd"인 장치를 찾는 방법

기본 ID가 "fd"인 장치를 찾는 방법

/proc/locks에는 다음이 있습니다.

21: POSIX  ADVISORY  READ  6813 fd:02:32374949 1073741826 1073742335

반면 /dev에 기본 ID가 다음과 같은 기기는 없습니다.fd. 이런 상황에서 어떻게 해야 하는지 아는 사람 있나요? 저는 페도라 22를 사용하고 있습니다.

답변1

당신은 그것을 가지고 있지 않은 것이 확실합니까? fd10진수로 253이며 virtblk장치 드라이버(예: vda2)입니다.

% ls -l /dev/vda2
brw-rw---- 1 root disk 253, 2 Aug 24 07:49 /dev/vda2

또는 장치가 아닌 해당 파일이 가리키는 실제 파일을 찾으려면 /proc/6813/fd프로세스가 어떤 파일을 열었는지 확인하고 이를 inode 번호와 비교할 수 있습니다.

/proc/locks예를 들어 내 항목 에는 다음이 표시됩니다 .

21: FLOCK  ADVISORY  WRITE 1324 fd:03:390139 0 EOF

그래서

find -L /proc/1324/fd -maxdepth 1 -inum 390139 -exec readlink {} \;

(-L은 실제 파일에 대한 심볼릭 링크를 따르 /proc/.../fd므로 대상의 inode 번호를 확인할 수 있습니다. 이는 maxdepth디렉토리에 대한 심볼릭 링크를 따르지 않음을 의미합니다).

이 경우 나는 얻는다

# find -L /proc/1324/fd -maxdepth 1 -inum 390139 -exec readlink {} \;
/var/spool/postfix/pid/master.pid

관련 정보