银河麒麟系统中文件被进程占用无法删除时,须先用lsof定位进程、kill -9或sudo fuser -k终止占用,再用sudo rm -f删除;未释放句柄前任何删除操作均失败。

银河麒麟系统中文件因被进程持续读写而无法删除,提示“设备或资源忙”“正在被使用”或右键删除无响应时,必须先定位并终止占用该文件的进程,否则任何rm命令都会失败,甚至sudo权限也无效。
第一步:确认文件是否被进程占用
进入文件所在目录,执行:lsof 文件名。若返回空,说明当前无进程直接打开该文件;若输出包含COMMAND、PID、TYPE等列,则已锁定。注意:某些进程(如WPS后台服务)可能不直接显示文件名,而是占用其父目录——此时需用lsof +D /path/to/dir扫描整个目录。
第二步:精准终止占用进程
方法一:按PID逐个杀死
从lsof输出中找到对应行的PID(第二列),执行:kill -9 PID。这一步不可跳过信号温和阶段,因为目标进程大概率已僵死,SIGTERM无效。
方法二:一键清空整个目录级占用
切换到文件所在路径后,执行:sudo fuser -k .(末尾点号代表当前目录)。该命令会自动识别所有访问该目录及其子项的进程,并向其发送SIGKILL——比手动查杀更彻底,尤其适合桌面目录下多个文件被nautilus、evince、wps同时挂住的场景。
【关键提醒】不要在未确认PID归属的情况下执行sudo fuser -k /,否则可能意外杀死gdm3、systemd-logind等关键服务,导致图形界面崩溃。
第三步:验证进程是否消失
步骤一:检查PID是否还存活
运行:ps -p PID(将PID替换为实际数字)。若有输出,说明进程仍在;若返回空行,表示已终结。
步骤二:确认文件句柄释放
再次执行:lsof 文件名。若无任何输出,说明占用已解除——此时才能进行下一步删除操作。
第四步:执行最终强制删除
占用进程终止且句柄释放后,立即执行:sudo rm -f 文件名。若目标是目录,改用:sudo rm -rf 目录名。删除完成后,运行:ls 文件名,若无输出即表示删除成功。

















