Linux Study Lab !

当前位置:   网站首页 >> Linux 基础配置

Linux 命令fuser用例 - 卸载设备时提示资源正在使用

fuser这个命令多半用于协助我们寻找删不掉的文件或文件夹,弹不出的设备或光驱盘符究竟被谁给占用了。

当我们尝试弹出设备或光驱时,可能会收到如下提示:

# eject
umount: /media/cdrom: device is busy
umount: /media/cdrom: device is busy
eject: unmount of `/media/cdrom' failed

这时候可以通过fuser命令来查看是谁占用了目标的进程

[root@localhost /]# fuser /mnt/cdrom
/mnt/cdrom: 4021c 5382c
[root@lancy sbin]# ps -ef |egrep '(4021|5382)' |grep -v grep
root 4021 4227 0 20:00 pts/1 00:00:00 bash
root 5382 4561 0 20:00 pts/1 00:00:00 vim readme.txt

上述输出中,4021c代表进程为4021的id占用了资源,字母c表示这是目录型占用,也就是有一个用户在目标文件夹内的bash命令界面下。

如果后续字母为e,则代表这是一个可执行程序占用的进程,字母n表示有其他进程调用了当前进程导致了资源占用。

通过man fuser可以获得如下参数配合该命令使用:

-a -c -f -k -i -l -m -n -s -u -v -V -4 -6

在这里我们常用的是参数-k 即kill来杀死占用目标资源的进程:

# fuser -k /mnt/cdrom
mnt/cdrom: 4021c 5382c
kill 5382: 没有那个进程
No automatic removal. Please use umount /media/cdrom
然后就可以弹出设备了# eject

发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项
  • 必填项