如果命名空间中的最后一个进程退出会发生什么?

abr*_*Xxl 7 linux namespace network-namespaces

我正在运行 Linux。

我在 mount 命名空间中有一个进程。我在这个过程中做了一个mount -t tmpfs tmpfs /mountpoint.

如果进程退出并且该挂载命名空间中没有更多进程,会发生什么情况?文件系统会自动卸载吗?挂载命名空间会被破坏吗?如果命名空间和挂载仍然处于活动状态,我该如何访问它?

如果网络命名空间没有更多进程,tun/tap/macvtap 接口会发生什么?

jpa*_*jpa 1

坐骑似乎仍然存在,但变得无法访问。

我做了以下测试:

  1. 输入新的命名空间并挂载 tmpfs:
root@localhost:~# mkdir tmp
root@localhost:~# 取消共享 -m bash
root@localhost:~# mount -t tmpfs tmpfs tmp
  1. 检查在 tmpfs 上创建 200 MB 文件之前和之后的内存使用情况。您可以注意到“共享”使用量从 404 兆字节变为 604 兆字节:
root@localhost:~# free -m
              可用的免费共享缓冲区/缓存总数
手机:9885 2966 681 404 6237 6148
兑换:8191 293 7898
root@localhost:~# dd if=/dev/urandom of=tmp/dummy bs=1M count=200
200+0 条记录
200+0 条记录输出
复制 209715200 字节(210 MB、200 MiB),12.0075 秒,17.5 MB/秒
root@localhost:~# free -m
              可用的免费共享缓冲区/缓存总数
手机:9885 2966 481 604 6437 5948
兑换:8191 293 7898
  1. 退出unshare shell,内存没有被回收:
root@localhost:~# 退出
root@localhost:~# free -m
              可用的免费共享缓冲区/缓存总数
手机:9885 2963 484 604 6437 5951
兑换:8191 293 7898

而如果我卸载 tmpfs,shared计数将恢复到初始值。