Ubuntu
殭屍 lxc 交換文件:文本文件忙但沒有 pid
我有一台執行 Ubuntu 12.04.5 LTS(Precise Pangolin)的伺服器。在該伺服器上,我創建了一個新的 Linux 容器:
$ sudo lxc-create -n mycontainer
過了一會兒,我決定擺脫這個容器:
$ sudo lxc-destroy -n mycontainer
但是我收到以下錯誤:
rm: cannot remove `/var/lib/lxc/mycontainer/rootfs/swapfile': Operation not permitted
我試圖手動刪除有問題的文件:
$ sudo rm /var/lib/lxc/mycontainer/rootfs/swapfile
但是,果然,這給了我同樣的錯誤資訊。
我用 lsattr 檢查了擴展文件屬性,以確保它不是不可變的:
$ sudo lsattr /var/lib/lxc/mycontainer/rootfs/swapfile -------------e- /var/lib/lxc/mycontainer/rootfs/swapfile
作為一個實驗,我試圖覆蓋文件:
$ echo '' > /var/lib/lxc/mycontainer/rootfs/swapfile
這給了我一個新的錯誤資訊:
bash: /var/lib/lxc/mycontainer/rootfs/swapfile: Text file busy
所以我嘗試使用 lsof 來獲取正在使用該文件的程序的 pid:
$ sudo lsof /var/lib/lxc/mycontainer/rootfs/swapfile
這沒有產生任何輸出。我用定影器嘗試了同樣的事情:
$ sudo fuser /var/lib/lxc/mycontainer/rootfs/swapfile
再次,沒有輸出。
我還要提到我檢查了文件的大小:
$ sudo du -h /var/lib/lxc/mycontainer/rootfs/swapfile 1.1G /var/lib/lxc/mycontainer/rootfs/swapfile
這是怎麼回事,我該如何擺脫這個文件?
該名稱
swapfile
對文件的用途和使用它的內容給出了非常強烈的提示。即:系統將其用作交換,因為有人創建了交換文件並將其添加到系統中
swapon
。嘗試將其從活動交換中刪除
swapoff
:swapoff /var/lib/lxc/mycontainer/rootfs/swapfile