解决umount.nfs:/data:deviceisbusy问题

有时候我们需要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


本文名称:解决umount.nfs:/data:deviceisbusy问题
网页地址:http://scjbc.cn/article/ghdjde.html

其他资讯