名前空間がそれとどのように関連しているか理解できません。戻り値はクエリプロセスに基づいていると/proc
仮定します。/proc
たとえば、グローバルPID名前空間内で現在のプロセスのPIDを決定します。
$ bwrap --bind / / readlink /proc/self
6182
これは私にとって意味があります。ただし、readlink
それを独自のPID名前空間に分離すると、次のようになります。
$ bwrap --bind / / --unshare-pid readlink /proc/self
6177
私は同じ結果を得る!名前空間内でPIDを取得するには、次のものを追加する必要があります--proc /proc
。
$ bwrap --bind / / --unshare-pid --proc /proc readlink /proc/self
2
/proc
しかし、読書プロセスの文脈を常に考慮する必要はありませんか?追加のコンテンツが必要なのはなぜですか?procfs
プロセスとはどのような関係がありますかreadlink
?
新しいPID名前空間を作成しないと、追加のコンテンツにはprocfs
違いはありません。
$ bwrap --bind / / --proc /proc readlink /proc/self
6179
答え1
これが名前空間の問題の1つです。そして
bwrap --bind / / --unshare-pid readlink /proc/self
新しいPIDネームスペースと新しいマウントネームスペースを作成しましたが(bwrap
デフォルトではこれが行われるため)、/
そのマウントネームスペースに外部バインディングを明示的にマウントします。その結果、新しいマウントネームスペースの内部は/proc
外部と同じです。
bwrap --bind / / --unshare-pid ps -ef
主な機能はここに説明されています。存在するman pid_namespaces
:
ファイルシステム
/proc
(ディレクトリにあります)は、/proc/[pid]
プロセスのPID名前空間に表示されるプロセスのみを表示します。インストールの実行、/proc
他の名前空間のプロセスでファイルシステムを見る場合も同様です。
(強調)。あなたは見ることができます/proc
ここで適切なPID名前空間を覚えておいてください。。
readlink
したがって、実行は独自のPID名前空間を介さずにmountのPID名前空間を介して表示されます。/proc
新しいPID名前空間のフォーク内にマウントを再追加して、--proc=/proc
そのコンテンツに新しいPID名前空間を反映させます。/proc
bwrap