如何锁定共享网络命名空间中的某些资源

如何锁定共享网络命名空间中的某些资源

我想实现类似于 pid 文件但针对网络命名空间的功能。在公共文件命名空间中,进程可以锁定 pid 文件,并确保没有其他进程在同一文件命名空间中运行,只需检查它是否可以接收对该文件的写入权限。我想要相同的但对于网络命名空间。

考虑应用程序在不同文件名空间但在同一网络空间中运行的情况(就像直接桥接到主机网络命名空间的两个容器)。

我想为每个进程分配一些抽象实例,而不是 pid。具有相同实例 ID 并共享相同网络命名空间的两个进程不应该能够同时运行。

绑定在某些端口上是不行的,因为许多应用程序应该能够绑定在同一端口上。

我遇到了 mroute 套接字,但它被 pimd 守护进程使用。

有任何想法吗?

答案1

像在抽象命名空间中的 Unix 域套接字上使用绑定一样,其名称源自抽象资源标识符是可行的方法。

相关内容