解决umount.nfs: /data: device is busy 问题

Posted dalianpai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决umount.nfs: /data: device is busy 问题相关的知识,希望对你有一定的参考价值。

有时候我们需要umount某个挂载目录时会遇到如下问题:

[root@localhost /]# umount /data/
umount.nfs: /data: device is busy

通过这条命令查看:

[root@localhost /]# fuser -m -v /data/
用户 进程号 权限 命令
/data/: root 2798 ..c.. bash
root 2996 ..c.. su

-v 表示 verbose 模式。进程以 ps 的方式显示,包括 PID、USER、COMMAND、ACCESS 字段

-m 表示指定文件所在的文件系统或者块设备(处于 mount 状态)。所有访问该文件系统的进程都被列出。

如上所示,有两个进程占用了,将其kill掉,再重新取消挂载。

[root@localhost /]# kill -9 2798
[root@localhost /]# kill -9 2996
[root@localhost /]# umount /data/
[root@localhost /]#
成功!

 

fuser 概述
fuser命令是用来显示所有正在使用着指定的file, file system 或者 sockets的进程信息。

[root@gc-statis2 ]# fuser -m -v tests/
用户 进程号 权限 命令
tests/: root 7300 F.ce. php-fpm
www 7301 ..ce. php-fpm
www 7302 ..ce. php-fpm
www 7303 ..ce. php-fpm
www 7304 ..ce. php-fpm
www 7305 ..ce. php-fpm
www 7306 ..ce. php-fpm
www 7307 ..ce. php-fpm
www 7308 ..ce. php-fpm
www 7309 ..ce. php-fpm 
root 18891 ..c.. bash

同时fuser 可以用来查找哪些进程正在使用指定的端口(network port).

[root@gc-statis2 ]# fuser -v -n tcp 80
用户 进程号 权限 命令
80/tcp: root 7975 F.... nginx
www 7976 F.... nginx

fuser 常用场景
fuser通常被用在诊断系统的“resource busy”问题,通常是在你希望umount指定的挂载点得时候遇到。 如果你希望kill所有正在使用某一指定的file, file system or sockets的进程的时候,你可以使用-k option。

fuser –k /path/to/your/filename

这时fuser会向所以正在使用/path/to/your/filename的进程发送SIGKILL。如果你希望在发送之前得到提示,可以使用-i 选项。

fuser –k –i /path/to/your/filename

 今天遇到了这个问题,本想记录一下,结果场景没了,就转载一下:

https://www.cnblogs.com/saneri/p/5465718.html

以上是关于解决umount.nfs: /data: device is busy 问题的主要内容,如果未能解决你的问题,请参考以下文章

exportfs命令 NFS客户端问题 FTP介绍 使用vsftpd搭建ftp

Linux命令大总结

香侬科技独家对话Facebook人工智能研究院首席科学家Devi Parikh

下述哪一条不是由于关系模式设计不当而引起的

pytorch代码中同时包含训练和测试代码时显存爆炸

解决linux adb no perssions问题