在 /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