如何将名称添加到命名空间?
How to add a name to namespace?
据我所知,我可以使用"clone"创建进程和命名空间,但是这样创建的命名空间没有名字。比如我创建了一个网络命名空间,参数为:CLONE_NEWNS,但是在命令"ip netns list"中,并没有命名空间列表,因为创建的命名空间没有名字。但是我可以使用命令 "ip netns add xxx" 来创建名称为 "xxx" 的命名空间。
我想知道如何使用系统调用 "clone" 创建名称空间。
创建一个从 /var/run/netns/<name>
到 /proc/<pid>/ns/net
的符号链接,其中 <pid>
是使用 CLONE_NEWNS
创建的进程的 PID,<name>
是您要用来引用网络命名空间的名称。
请注意,ip link set netns
命令将接受 PID 或名称,并且 nsenter
命令也可以通过 PID 访问命名空间,因此您实际上可能不需要将名称分配给网络命名空间。
据我所知,我可以使用"clone"创建进程和命名空间,但是这样创建的命名空间没有名字。比如我创建了一个网络命名空间,参数为:CLONE_NEWNS,但是在命令"ip netns list"中,并没有命名空间列表,因为创建的命名空间没有名字。但是我可以使用命令 "ip netns add xxx" 来创建名称为 "xxx" 的命名空间。
我想知道如何使用系统调用 "clone" 创建名称空间。
创建一个从 /var/run/netns/<name>
到 /proc/<pid>/ns/net
的符号链接,其中 <pid>
是使用 CLONE_NEWNS
创建的进程的 PID,<name>
是您要用来引用网络命名空间的名称。
请注意,ip link set netns
命令将接受 PID 或名称,并且 nsenter
命令也可以通过 PID 访问命名空间,因此您实际上可能不需要将名称分配给网络命名空间。