僵尸 lxc 交换文件:文本文件繁忙但没有 pid

僵尸 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

这没有产生任何输出。我尝试用 fuser 做同样的事情:

$ 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

这是怎么回事?我该如何删除这个文件?

答案1

该文件的名称swapfile非常有力地暗示了文件的用途以及它的用途。

即:系统正在将其用作交换,因为有人创建了交换文件并使用 将其添加到系统中swapon

尝试使用以下命令将其从活动交换中删除swapoff

swapoff /var/lib/lxc/mycontainer/rootfs/swapfile

相关内容