有很多类似的问题,如"设备或资源忙".但我认为我的问题与他们不同.
我使用mount --bind来绑定目录
mount --bind /tmp/origin /tmp/mount
Run Code Online (Sandbox Code Playgroud)
然后可以成功卸载
umount /tmp/mount
Run Code Online (Sandbox Code Playgroud)
然后,如果我立刻打电话给rm
rm -rf /tmp/mount
Run Code Online (Sandbox Code Playgroud)
我可能会收到错误Device or resource busy.如果我等待2~3秒,然后调用rm,它可能会成功.
所以这种行为在这里很奇怪.我试着用
lsof +D /tmp/mount
Run Code Online (Sandbox Code Playgroud)
看不到任何东西.
我也用fuser -vm /tmp/mount,看不到任何进程持有这个文件夹.
我比较/proc/mounts之前umount /tmp/mount和之后umount /tmp/mount./tmp/mount已经删除了.
我比较stat /proc/mounts之前umount /tmp/mount和之后umount /tmp/mount.inode也不同,这意味着/tmp/mount已经删除完整.
即使我打电话sync && echo 2 > /proc/sys/vm/drop_caches并尝试删除文件缓存,它仍然无法正常工作.
我在Ubuntu 14.04和CentOS 6.6中尝试了这个.他们有相同的结果.