当我们执行:sudo umount /mnt/music的时候如果出现device is busy!是很令人尴尬的。我们要找出内部的原因。
umount提供了一个 -l 的选项,可以让你卸载那些正在使用中的设备。
这里介绍两个命令fuser(find user)和lsof(list open file);
发现使用文件系统的进程:
fuser------identify processes using files or sockets
fuser返回和指定为参数的设备或挂接的文件系统关联的所有进程的PID,以及每个进程使用文件系统方式的简洁信息。
fuser -m /home/winlin
/home/winlin: 1515rce 1579rce 1580rce 5634rce 5880rce 5899rce 5935rce 5940rce 5941rce 5947rce 5951rce 5954rce 5958rce 5963rce 5967rce 5968rce 5969rce 5972rce 5976rce 5979rce 5996rce 6003rce 6013rce 6016rce 6021rce 6022rce 6030rce 6038rce 6042rce 6043rce 6044rce 6054rce 6055rce 6068rce 6070rce 6072rce 6079rce 6116rce 6140rce 6143rce 6144rce 6146rce 6232rce 7285rce 7286rce 7295rce 7296rce 7300rce 7316rce 7326rce
其中的rce表示进程使用/home/winlin的方式。详见 man fuser;
在我们得到PID以后我们可以使用preg搜索每个指定进程的PID
ps alxww | grep 1515
winlin@winlin-Satellite:~$ ps alxww | grep 1515
1 1000 1515 1 9 -11 229196 5316 poll_s S<sl ? 0:01 /usr/bin/pulseaudio --start --log-target=syslog
0 1000 1580 1515 20 0 117560 3900 poll_s Sl ? 0:00 /usr/lib/pulseaudio/pulse/gconf-helper
0 1000 7495 7300 20 0 10564 912 pipe_w S+ pts/0 0:00 grep --color=auto 1515
我们最好使用root用户执行以上的命令,root用户可以列出其他隐藏的进程。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
lsof返回在指定文件系统上运行的进程的详细信息,一次性的告诉用户可能需要的所有信息。
winlin@winlin-Satellite:~$ lsof /home/winlin
COMMAND PID USER FD(文件描述符) TYPE DEVICE SIZE/OFF NODE NAME
gnome-ses 5899 winlin cwd DIR 8,1 4096 13369510 /home/winlin
gnome-pow 5951 winlin cwd DIR 8,1 4096 13369510 /home/winlin
stardict 5967 winlin cwd DIR 8,1 4096 13369510 /home/winlin
compiz 5968 winlin cwd DIR 8,1 4096 13369510 /home/winlin
polkit-gn 5969 winlin cwd DIR 8,1 4096 13369510 /home/winlin
gnome-pan 5972 winlin cwd DIR 8,1 4096 13369510 /home/winlin
nm-applet 5976 winlin cwd DIR 8,1 4096 13369510 /home/winlin
nautilus 5979 winlin cwd DIR 8,1 4096 13369510 /home/winlin
syndaemon 5996 winlin cwd DIR 8,1 4096 13369510 /home/winlin
sh 6054 winlin cwd DIR 8,1 4096 13369510 /home/winlin
gtk-windo 6055 winlin cwd DIR 8,1 4096 13369510 /home/winlin
gdu-notif 6140 winlin cwd DIR 8,1 4096 13369510 /home/winlin
sh 6143 winlin cwd DIR 8,1 4096 13369510 /home/winlin
chromium- 6144 winlin cwd DIR 8,1 4096 13369510 /home/winlin
chromium- 6146 winlin cwd DIR 8,1 4096 13369510 /home/winlin
chromium- 6232 winlin cwd DIR 8,1 4096 13369510 /home/winlin
sh 7285 winlin cwd DIR 8,1 4096 13369510 /home/winlin
keepnote 7286 winlin cwd DIR 8,1 4096 13369510 /home/winlin
sh 7295 winlin cwd DIR 8,1 4096 13369510 /home/winlin
gnome-ter 7296 winlin cwd DIR 8,1 4096 13369510 /home/winlin
bash 7300 winlin cwd DIR 8,1 4096 13369510 /home/winlin
lsof 7544 winlin cwd DIR 8,1 4096 13369510 /home/winlin
lsof 7545 winlin cwd DIR 8,1 4096 13369510 /home/winlin
最好也是使用root用户执行。hp?do=home