我已经在Linux中使用setns系统调用来设置当前go进程的NET名称空间。此名称空间更改了/ sys / class / net在当前进程中的显示方式。但是,如果尝试使用golang API查看这些文件,则只会看到父级的视图(未命名空间)。我认为这是因为go在不继承父级名称空间的情况下进行了分叉。如何使用go读取/ sys / class / net中的文件,以便setns系统调用在正在读取文件的孩子中仍然存在。
答案 0 :(得分:0)
最终发现了一个已知的“ wontfix”问题:https://github.com/golang/go/issues/8676
我发现的解决方法是使用cgo派生一个公开给go运行时的c函数,然后调用setns。