问题导向:
刚才在部署yum源的时候,想要卸载挂载点的时候,出现了target is busy ,如下所示
解决方法:用命令:
fuser -mv -k /iso 杀死进程
如图所示killed,然后进行卸载挂载点即可
这里用到了fuser,下面对其做出总结:
fuser的功能:fuser 可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息.
一、fuser的六种访问状态:
c current directory. (表示有进程的当前路径是fuser指定的目录or文件系统)
e executable being run. (表示fuser指定的文件是一个正在执行的可执行文件)
f open file. f is omitted in default display mode.
F open file for writing. F is omitted in default display mode.
r root directory. (表示有进程的跟路径是fuser指定的目录or文件系统)
m mmap'ed file or shared library (表示有进程使用了fuser指定的文件是mmap文件或者指定的共享库) mmap简单来说就是降文件映射到内存, 修改了内存就是修改了文件。
以上了解一下即可,知道下边的常用用法即可:
二.、常见用法
1. fuser /mnt/cdrom
查看正在使用/mnt/cdrom的进程, 当你在eject的时候, 经常碰到“/mnt/cdrom: device is busy”, 这个时候用fuser就可以看到哪个进程正在使用该设备了
2. fuser -k /mnt/cdrom
杀死正在访问指定文件的进程。 除非使用-signal修改信号, 否则发送SIGKILL信号
3. fuser-m/-c 后面跟的路径都转换成该路径所在的文件系统, 比如 fuser -c /usr/local 就列出正在使用/usr/local所在文件系统的所有进程
4. fuser -n 名字, 选择不同的名字空间, 可以是file(默认), udp, tcp。 比如列出正在使用tcp 22端口的进程:
fuser -n tcp 22