如何查找主ID为“fd”的设备

如何查找主ID为“fd”的设备

在 /proc/locks 中我有:

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

另一方面,/dev没有任何设备的主 ID 为fd。有谁知道在这种情况下该怎么办?我使用的是 Fedora 22。

答案1

你确定你没有吗? fd是十进制的253,它是virtblk设备驱动程序(例如vda2)。

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

或者,如果您想找到它指向的实际文件,而不是设备,我们可以作弊并查看/proc/6813/fd该进程打开了哪些文件,并将它们与索引节点号进行比较。

例如我在我的/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

相关内容