スレッドをネットワークネームスペースに関連付けるファイルはありますか?

スレッドをネットワークネームスペースに関連付けるファイルはありますか?

/proc/[pid]/ns/net PID が [pid] であるプロセスのネットワーク名前空間を示す inode へのリンクが含まれています。スレッドに似たものはありますか?

マイユースケースは、基本スレッドとワーカースレッドのセットを持つマルチスレッドアプリケーションです。一般ワーカーWはNを呼び出して新しいネットワーク名前空間を作成します。共有をキャンセル()(これによりWがNに入ります。)vethペアの一方の端をNにプッシュしてそのままにします(ルートネームスペースを指すfdを使用してそのネームスペースに戻ります)。 Wがルートネームスペースに返された後、Nにはプロセスがないため、これが発生するとNは削除されますが、これは望ましくありません。

私が考えた解決策は、ファイルシステムのどこかにNへのリンクをマウントすることでした。 iproute2 netnsが実行するアクションは次のとおりです。 /proc/[pid]/ns/net へのリンクをインストールします。私の場合、問題は/proc/[pid]/ns/netがルートネームスペースを参照し続け、Wのみのネームスペースを変更したため使用できず、ネームスペース行を指すファイル/何かが必要であったことです。 。 Linuxにはありますか?

ベストアンサー1

スレッドをネットワーク名前空間に関連付けるファイルがあります。

/proc/[PID]/task/[TID]/ns/net

ここで、TIDはスレッドIDです。これは私の問題を解決しました。

おすすめ記事