Ubuntu

殭屍 lxc 交換文件:文本文件忙但沒有 pid

  • March 13, 2016

我有一台執行 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

引用自:https://serverfault.com/questions/763462