Linux

如何查找主要 id 為“fd”的設備

  • August 25, 2016

在 /proc/locks 我有:

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

另一方面/dev,沒有任何設備的主要 id 為**fd**. 有誰知道在這種情況下該怎麼辦?我在fedora 22上。

你確定你沒有嗎? fd是十進制的 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

引用自:https://unix.stackexchange.com/questions/305568