解决方案:
假设要找出所有使用 /mnt 的进程
# fuser -uvm /mnt USER PID ACCESS COMMAND /mnt: root 7899 ..c.. (root)bash
或者你也可以使用
# lsof /mnt COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME bash 7899 root cwd DIR 0,18 4096 535032 /mnt (192.168.1.11:/work)
如果要终止所有使用 /mnt的进程,请运行以下命令
# fuser -km /mnt /mnt: 7899c
重新检查
# fuser -uvm /mnt
现在没有进程占用/mnt目录了,我们可以安全的卸载它。
搜索占用文件系统的已被删除的进程
还有一些进程已被删除,但文件仍然被锁定的情况,除非它们的父进程或者与该进程相关的应用程序被完全终止。
要查看这些文件,我们可能需要使用如下所示的另外参数
# lsof +aL1 /var COMMAND PID USER FD TYPE DEVICE SIZE NLINK NODE NAME rhn_check 31261 root 8u REG 253,2 22082560 0 327733 /var/cache/yum/prod-03-epel-x86_64-server-5-rhel5/primary.xml.gz.sqlite (deleted) rhn_check 31261 root 9u REG 253,2 78848 0 327737 /var/cache/yum/prod-03-likewise-x86_64-client-5-rhel5/primary.xml.gz.sqlite (deleted) rhn_check 31261 root 10u REG 253,2 144384 0 327741 /var/cache/yum/prod-03-mssb-x86_64-server-5/primary.xml.gz.sqlite (deleted) rhn_check 31261 root 11u REG 253,2 54056960 0 327748 /var/cache/yum/prod-03-rhel-x86_64-server-5/primary.xml.gz.sqlite (deleted) rhn_check 31261 root 12u REG 253,2 9275392 0 327752 /var/cache/yum/prod-03-rhel-x86_64-server-supplementary-5/primary.xml.gz.sqlite (deleted) rhn_check 31261 root 13u REG 253,2 582656 0 327756 /var/cache/yum/prod-03-rhn-tools-rhel-x86_64-server-5-rhel5/primary.xml.gz.sqlite (deleted)
说明:
当 +L 后跟一个数字时,只会列出链接数小于该数字的文件。
(-L 后面不能有数字。
)+L1 形式的规范将选择已取消链接的打开文件。
+aL1 <file_system> 形式的规范将选择指定文件系统上未链接的打开文件。
deleted 表示这些文件已被删除,但进程还引用未关闭。
有时,即使没有人访问共享,我们也无法卸载共享。
我们可能会遇到的错误是
Device busy Mount Point busy Text File is busy
在这些情况下,我们需要找出所有仍在访问文件的进程。
可以使用 lsof 或者 fuser 命令找出这些进程。
日期:2020-06-02 22:18:31 来源:oir作者:oir