当磁盘分区出现问题需要修复的时候,使用fsck命令,运行这个命令前,最好先卸载分区。
#fsck -V -a /dev/sda1
当挂载的磁盘需要卸载时使用umount命令,提示如题的错误时,说明磁盘中还有文件对应的进程在运行。
#umount /data/www
umount: /data/www : device is busy
解决方法一:
查找文件被进程所占用的进程号,命令如下
#fuser -m /data/www
/data/www : 8800c //8800代表进程号 c代表进程使用的目录
#ps -ef |grep 8800 //根据PID 找到具体进程,然后杀掉进程
#kill -9 8800 //或者停掉进程服务,如/usr/local/apache/bin/apachectl stop
#umount /data/www //最后可以正常卸载
以上可以用一条命令直接删除进程:
#fuser -k -x -u -c /dev/hd1 或者 fuser -kxuc /home
fuser命令用于报告进程使用的文件和网络套接字。fuser命令列出了本地进程的进程号,那些本地进程使用file,参数指定的本地或远程文件。对于阻塞特别设备,此命令列出了使用该设备上任何文件的进程。
每个进程号后面都跟随一个字母,该字母指示进程如何使用文件。
c:指示进程的工作目录。
e:指示该文件为进程的可执行文件(即进程由该文件拉起)。
f:指示该文件被进程打开,默认情况下f字符不显示。
F:指示该文件被进程打开进行写入,默认情况下F字符不显示。
r:指示该目录为进程的根目录。
m:指示进程使用该文件进行内存映射,抑或该文件为共享库文件,被进程映射进内存。
语法 fuser(选项)(参数) 选项
-a:显示命令行中指定的所有文件;
-k:杀死访问指定文件的所有进程;
-i:杀死进程前需要用户进行确认;
-l:列出所有已知信号名;
-m:指定一个被加载的文件系统或一个被加载的块设备;
-n:选择不同的名称空间;
-u:在每个进程后显示所属的用户名。
解决方法二
尝试强制卸载
#umount /data/www -f //正常情况下要等个1-2分钟,不保证一定行。如果强制卸载不行就使用上面的第一种方法。
本文由 Mr Gu 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Aug 26, 2016 at 09:24 pm