霜天部落 | 专注PHP研发,研究LAMP高性能架构部署与优化

linux 强制 umount 目录

有时需要强制umount一个目录,即使用用户在使用。此时会提示信息:“umount: Device or resource busy”

解决方法:原理上要想umount,首先要kill正在使用这个目录的进程。

执行命令:

fuser -k /mount_dir
umount -f /mount_dir

如果上述命令没有效果,可以使用下面更狠的命令:

fuser -k -m -v mount_dir
sleep 3
umount -f mount_dir

其实上面的方法太粗鲁,比较正规的要配合ps等命令,查出使用的用户、进程、命令等,然后做出综合判断,必要时先通知(signal或口头等)用户,确认安全时才可以强制kill此进程。

顺便补充一下fuser的说明:

fuser –help
usage: fuser [ -a | -s ] [ -n space ] [ -signal ] [ -kimuv ] name …
[ – ] [ -n space ] [ -signal ] [ -kimuv ] name …
fuser -l
fuser -V
-a display unused files too
-k kill processes accessing that file
-i ask before killing (ignored without -k)
-l list signal names
-m mounted FS
-n space search in the specified name space (file, udp, or tcp)
-s silent operation
-signal send signal instead of SIGKILL
-u display user ids
-v verbose output
-V display version information
-4 search IPv4 sockets only
-6 search IPv6 sockets only
– reset options
udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]