Tom*_*ale 6 linux unmounting lsof inotify fuser
我如何获得以下列表:
inotify,以及我问是因为我发现syncthing'sinotify手表阻止我的磁盘被卸载。
如下所示,没有任何内容出现在lsof或fuser列表中。
我猜对了syncthing......如果磁盘因以下原因无法卸载,我该如何消除未来的猜测inotify?
# umount /media/backup
umount: /media/backup: target is busy.
# lsof +f -- /media/backup/
# echo $?
1
# fuser -vmM /media/backup/
USER PID ACCESS COMMAND
/media/backup: root kernel mount /media/backup
# systemctl stop syncthing@ravi
# umount /media/backup
# echo $?
0
Run Code Online (Sandbox Code Playgroud)
也许fdinfo手表的 fd 可能有用:
$ readlink /proc/$(pgrep inotify)/fd/3
anon_inode:inotify
$ cat /proc/$(pgrep inotify)/fdinfo/3
pos: 0
flags: 00
mnt_id: 11
inotify wd:1 ino:357a sdev:700000 mask:fff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:7a35000000000000
Run Code Online (Sandbox Code Playgroud)
的sdev似乎是主要:次要设备号组合,如在输出处看到lsblk,例如:
$ lsblk | grep 7
loop0 7:0 0 80.5M 1 loop /snap/core/2462
Run Code Online (Sandbox Code Playgroud)
(我确实在监视/snap/core/2462。)
对于我的/dev/sda1是8:1,输出看起来像这样:
pos: 0
flags: 00
mnt_id: 11
inotify wd:1 ino:aae1b sdev:800001 mask:fff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:1bae0a0038e16969
Run Code Online (Sandbox Code Playgroud)
即使未列出正在监视的特定目录或文件,这也足以找出阻止卸载的原因。