修复 Linux 上的设备或资源繁忙错误
Nilesh Katuwal
2023年1月30日
本教程将修复 Linux 中的设备或资源繁忙错误。但首先,让我们了解什么是设备或资源繁忙。
如果设备或资源繁忙,则无法删除某些目录。当你尝试通过移动、复制或删除来更改数据源上的文件时,你会收到以下错误:设备或资源繁忙。
使用 lsof
在 Linux 的某个目录中查找打开的文件
将需要程序 lsof
,它代表列出打开的文件
。使用此工具有多种方法,其中一种是在某个目录中查找打开的文件。
$ lsof +D /path
输出:
chrome 39483 39488 GpuMemory user mem REG 8,5 285840 11410830 /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.12.0
chrome 39483 39488 GpuMemory user mem REG 8,5 678064 11411469 /usr/lib/x86_64-linux-gnu/libpixman-1.so.0.38.4
chrome 39483 39488 GpuMemory user mem REG 8,5 1065824 11411080 /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.20600.4
chrome 39483 39488 GpuMemory user mem REG 8,5 41152 11411707 /usr/lib/x86_64-linux-gnu/libthai.so.0.3.1
chrome 39483 39488 GpuMemory user mem REG 8,5 112960 11410855 /usr/lib/x86_64-linux-gnu/libfribidi.so.0.4.0
chrome 39483 39488 GpuMemory user mem REG 8,5 85448 11411836 /usr/lib/x86_64-linux-gnu/libwayland-server.so.0.1.0
chrome 39483 39488 GpuMemory user mem REG 8,5 39448 11410444 /usr/lib/x86_64-linux-gnu/libXrender.so.1.3.0
chrome 39483 39488 GpuMemory user mem REG 8,5 26800 11410422 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
chrome 39483 39488 GpuMemory user mem REG 8,5 18688 11410411 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
chrome 39483 39488 GpuMemory user mem REG 8,5 709496 11409861 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.28.0
chrome 39483 39488 GpuMemory user mem REG 8,5 101320 11411551 /usr/lib/x86_64-linux-gnu/libresolv-2.31.so
运行此命令后,你将通过/path
下的文件系统获救,因此最好在大目录下执行。
在你知道打开文件的进程后,你可以退出这些程序或使用 kill
命令杀死它们。
在 Linux 上修复设备或资源繁忙错误的替代方法
在该目录中键入以下命令以查看其中的内容。
$ls -a
输出:
. .. destination source
使用 vi
查看文件的内容。
$ vi destination source
输出:
" ============================================================================
" Netrw Directory Listing (netrw v165)
" /home/user/user/aven/destination
" Sorted by name
" Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$
" Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:special
" ==============================================================================
../
./
thanosdir/
thanosdir2/
thanosdir4/
thanos.txt
thanos1.txt
thanos2.txt
~
你会注意到,由于错误,第八列中的数据被弄乱了。ps-ef
命令可以找到进程 PID
。
$ ps -ef | grep thanos1.txt
输出:
user 44317 38941 0 22:10 pts/0 00:00:00 grep --color=auto thanos1.txt
如前所述,输出包含 PID
。我们可以使用 kill PID
杀死该进程。