Отhttps://man7.org/linux/man-pages/man1/n.1.html:
По умолчанию новое пространство имен существует только до тех пор, пока у него есть хотя бы один процесс-участник. Пространство имен можно сделать постоянным — то есть, закрепленным в существовании, даже если у него нет процессов-участников — с помощью привязки монтирования соответствующего файла /proc/PID/ns/ns-type.
Какой PID используется в пути файла источника монтирования привязки? Разве весь смысл точки монтирования привязки при создании пространств имен не в том, что пространство имен не полагается на существование PID?
Если я создам сетевое пространство имен с clone()
использованием CLONE_NEWNET
флага, а затем создам привязку монтирования с использованием PID нового созданного процесса, а затем убью новый процесс, я бы подумал, что файл /proc/PID/ns/net
исчезнет, но тогда он /var/run/netns/<netns name>
также будет удален, и сетевое пространство имен не сохранится.
решение1
Программное обеспечение пользовательского пространства, работающее в процессах, не может создавать пространства имен вне какого-либо процесса.
Следовательно, вы используете PID процесса, создающего пространство имен (или одного из его дочерних процессов).
Если я создам сетевое пространство имен с помощью clone(), используя флаг CLONE_NEWNET, а затем создам привязку монтирования, используя PID нового созданного процесса, а затем убью новый процесс, я бы подумал, что файл /proc/PID/ns/net исчезнет,
Давайте возьмем здесь "файл" с большими кавычками. Виртуальная запись файловой системы исчезает, но ...
но тогда /var/run/netns/ также будет удален
"delete" - это то, что вы делаете с реальными файлами, и это не применимо здесь. PID исчезнет, но то, к чему вы могли бы получить доступ как к некоторой записи виртуальной файловой системы по пути, содержащему этот PID, станет недоступнымчтопуть. Но:
но тогда /var/run/netns/ также будет удален, и сетевое пространство имен не сохранится.
неверно, поскольку монтирование привязки добавит внутреннюю ссылку ядра в пространство имен, так что оно не станет неиспользуемым и, таким образом, сохранится.