네임스페이스가 그것과 어떻게 관련되는지 이해가 되지 않습니다 . 반환 값은 쿼리 프로세스를 기반으로 한다고 /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
이것이 네임스페이스의 문제 중 하나입니다. 그리고
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