如何调试 ip netns add test 后无法删除命名空间的问题

如何调试 ip netns add test 后无法删除命名空间的问题
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=34,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=9430)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=401072k,mode=700)
tmpfs on /run/netns type tmpfs (rw,nosuid,noexec,relatime,size=401076k,mode=755)
nsfs on /run/netns/test type nsfs (rw)


root@localhost:~# ip netns delete test
Cannot remove namespace file "/var/run/netns/test": Device or resource busy
root@localhost:~# umount --force /run/netns/test 
umount: /run/netns/test: not mounted


netns       20            root  cwd       DIR               8,17     4096          2 /
netns       20            root  rtd       DIR               8,17     4096          2 /
netns       20            root  txt   unknown                                        /proc/20/exe


root        20  0.0  0.0      0     0 ?        S<   06:11   0:00 [netns]
root        21  0.0  0.0      0     0 ?        S    06:11   0:00 [khungtaskd]

我该怎么做才能解决这个问题?看起来netns是该安装点的唯一用户?我应该/可以杀死线程吗?

答案1

检查哪个进程正在使用命名空间fuser

fuser /var/run/netns/test

它将输出代表正在使用该资源的进程 ID 的数字列表。然后可以使用以下命令检查每个进程 ID ps

ps -p 123

相关内容