修復 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
殺死該程序。