解决方法:
1,比较简单的,重启一下就可以了。
2,在释放该设备之前,让我们找出谁在使用它。
# fuser /media/cdrom
进程正在运行,无法弹出磁盘其实是我们的错误。
现在,如果您是根用户,可以随意终止进程:
# fuser -k /media/cdrom
用lsof列出当前正在被打开的文件
一,lsof有什么用?
lsof可以找出被特定进程所打开的文件,目录,套接字,设备.
例子:比如有时我们不能umount掉一个分区时,我们会需要检查,是哪些进程在使用当前的分区
以便找出进程后将它关闭
一个与脚本相关的例子:
我们使用ftp接收别人上传的文件,有程序被放到crond中定时进行处理,
此时就有一个问题;我们如何得知当前被处理的文件是否上传完了,
比如:如果上传的是一张图片,且正在传输中我们就进行了处理,则我们会得到一张残缺不全的图片
解决方法:用lsof对文件进行检查,如果有进程在访问,就表示还未上传完成,可以先跳过当前文件
二,lsof的用法举例
1,检查目录和文件
[root@localhost cdrom]# umount /mnt/cdrom
umount: /mnt/cdrom: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
在做umount设备时, device isbusy是令人头痛的提示
大家看,我使用的是fedora 10,umount会自动给出让大家用lsof或fuser进行检测的信息
[root@localhost cdrom]# lsof /mnt/cdrom
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME