rm -rf XXXXX : Device or resource busy问题

博客主要围绕Linux系统中文件因被其他进程占用而无法删除的问题展开。介绍了三种解决方法,一是解除用到文件的进程后再删除;二是用lsof |grep nfs00000命令查看使用文件的进程,可杀死对应进程;三是在umount、lsof命令无法使用时,经同事建议采用的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在删除文件时,经常会出先

rm: cannot remove `name/current/.nfs00000000036a004e00000009': Device or resource busy
rm: cannot remove `name/.nfs00000000036a00320000000a': Device or resource busy
去网上搜了一下,发现是有别的进程在使用该文件

方法一:

首先解除用到此文件的进程:

umount XXXXX

然后再删除

rm -rf XXXXX

例子:

$ rm -rf netns/
rm: cannot remove ‘netns/default’: Device or resource busy
$ umount  netns
$ rm -rf netns/

方法二:

使用lsof |grep nfs00000 命令查看哪个进程在使用该文件,输出结果如下:

java      32308    hadoop  199uW     REG               0,23       10 57278514 /public/hadoop/name/.nfs00000000036a00320000000a (iboss01:/public)
java      32308    hadoop  201u      REG               0,23  1048576 57278542 /public/hadoop/name/current/.nfs00000000036a004e00000009 (iboss01:/public)
很显然,进程号32308在使用上面的文件


要删除这个文件就要把32308这个进程杀死

命令kill -9 32308  (在这里我就先不使用kill -9命令,因为我在网上看到有人使用这个命令把java虚拟机搞坏了,我先重启电脑试试)
 

方法三:

/sbin/fuser -k filename

从网上找到前两种方法,发现umount、lsof命令无法使用,问过同事后使用第三种方法,很快就解决了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值