僵尸lxc交换文件:文本文件忙,但没有PID

我有一台运行Ubuntu 12.04.5 LTS(精确穿山甲)的服务器。 在该服务器上,我创build了一个新的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提供了一个非常强烈的暗示文件的目的和使用它。

也就是说:系统正在使用它作为交换,因为有人创build交换文件并用swapon将其添加到系统中。

尝试使用swapoff从活动交换中删除它:

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