今天遇到了一個問題,過程如下:
[root@fktest002 /]# mount //10.188.129.141/sql /mnt -o username=administrator
Password:
[root@fktest002 /]# cd /mnt
[root@fktest002 mnt]# ls
activesession.sql dbfile.sql job.sql l.sql seg.sql sqlplan.sql
[root@fktest002 mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 30G 20G 8.4G 71% /
/dev/sda1 99M 12M 83M 12% /boot
none 252M 0 252M 0% /dev/shm
/dev/mapper/VolGroup00-LogVol01
20G 9.9G 8.9G 53% /u02
/dev/mapper/VolGroup00-LogVol02
18G 1.7G 16G 10% /u10
//10.188.129.141/sql 21G 14G 6.9G 66% /mnt
但不小心,我把10.188.129.141/sql文件夾共享取消了
結果:
[root@fktest002 mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 30G 20G 8.4G 71% /
/dev/sda1 99M 12M 83M 12% /boot
none 252M 0 252M 0% /dev/shm
/dev/mapper/VolGroup00-LogVol01
20G 9.9G 8.9G 53% /u02
/dev/mapper/VolGroup00-LogVol02
18G 1.7G 16G 10% /u10
df: `/mnt': Invalid slot
[root@fktest002 mnt]# umount /mnt
umount: /mnt: device is busy
umount: /mnt: device is busy
假设无法卸载的设备为/mnt,运行下列命令即可:
# fuser -m -v /mnt
用户 进程号 权限 命令
/mnt: galeki 335 ..c.. gqview
-m参数显示所有使用指定文件系统的进程,后面可以跟挂载点,或是dev设备,-v参数给出详细的输出,可以看出,原来是gqview这个程序还在霸占着移动设备,fuser还给出了程序的进程号,知道了进程号,你就可以随便怎么处置这个程序了。
另外你也可以添加一个-k参数:
fuser -m -k /mnt
这招自动把霸占着/mnt/的程序杀死。如果你不是很明确是否要杀死所有霸占设备的程序,你还可以加一个-i参数,这样每杀死一个程序前,都会询问:
# fuser -m -v -i -k /mnt
用户 进程号 权限命令
/mnt: galeki 371 ..c.. gqview
杀死进程371 ? (y/N)
嘿嘿,這個問題解決了....