새 PID 네임스페이스의 PID가 연속적이지 않은 이유는 무엇입니까?

새 PID 네임스페이스의 PID가 연속적이지 않은 이유는 무엇입니까?

저는 우분투 20.04를 실행하고 있습니다. ~에 따르면https://lwn.net/Articles/531419/그리고https://stackoverflow.com/questions/3446727/how-does-linux-define-the-next-pid/3457108#3457108, 할당된 PID는 연속적이어야 합니다. 그러나 이것은 새로 생성된 PID 네임스페이스의 경우에는 해당되지 않습니다. 여기서 첫 번째 프로세스의 PID는 1(당연히 그래야 함)이고 다음 프로세스의 PID는 8입니다. 이상한 점은 PID 8 이후의 모든 PID가 순차적으로 할당된다는 것입니다.

$ sudo unshare --fork --pid --mount-proc bash
root@anon:/home/anon# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0   9844  3840 pts/2    S    12:13   0:00 bash
root           8  0.0  0.0  11500  3364 pts/2    R+   12:13   0:00 ps aux

그 이후의 다른 프로세스에는 9, 10, 11...이 할당됩니다.

처음에는 왜 1에서 8로 뛰어올랐는지 궁금합니다. PID 2-7을 실행하고 점유하기 전에 생성되고 종료된 다른 프로세스가 있는 경우 ps aux해당 프로세스가 무엇인지 어떻게 알 수 있습니까? 나는 찾아 보았지만 /var/log/syslog유용한 것을 찾지 못했습니다.

답변1

처음에는 왜 1에서 8로 뛰어올랐는지 궁금합니다.

Bash를 대화형 모드로 시작하면 프롬프트가 표시되기 전에 rc 파일( 로그인 셸인 경우 의 해당 시스템 전체 파일)을 읽고 실행 ~/.bashrc합니다 .~/.profile/etc

이러한 rc 파일을 실행하면 bash --norc실행되지 않고 ps명령에 예상된 PID 2가 표시됩니다.

ps aux를 실행하기 전에 PID 2-7을 차지하는 다른 프로세스가 생성되고 종료된 경우 해당 프로세스가 무엇인지 어떻게 알 수 있습니까?

구현하다bash -x

관련 정보