背景说明:
我们需要在日常运维中经常执行磁盘扩展、卸载、装载等操作,但在此系统上运行的APP可能没有关闭,或者其他运维同事可能正在操作此目录。 此时,我们无法直接卸载umount。 所以,今天我来给大家看看如果发生这样的问题,如何合理处理。
症状说明:现在需要卸载/mnt目录,如下图所示。
卸载命令:运行umount /mnt后,发现无法卸载。 指示资源正在使用中,如下图所示。
如上所述,提示已被占用,无法卸载。 我该怎么办? 方法很简单,可以使用强制卸载。 命令如下:
[root@docker /]# umount -f /mnt
umount2 :设备或资源总线
umount: /mnt: device is busy
umount2 :设备或资源总线
umount: /mnt: device is busy-f参数是为了强制卸载。 此处也发现,上面使用的强制卸载无效。 还是被报告错了。 我该怎么办? 别着急,往下看!
使用fuser命令确定哪个进程占用了目录
[root@docker /]# fuser -cu /mnt
/mnt :从1112 c (Java )上看,pid为1112的Java进程当前占用此目录,无法卸载。
那么,在确定哪个进程占用了这个目录之后,我们就可以完成这个进程。
这里有两种方法去基尔进程:
第一个是我们平时使用的直接命令。 kill -9 1120;
二是使用fuser -ck /mnt
[root@docker /]# fuser -ck /mnt
/mnt: 1120c如果需要知道哪个目录被哪个进程占用,也可以使用lsof命令查看。