저는 우분투 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