Process
為什麼新 PID 命名空間中的 PID 不連續
我正在執行 Ubuntu 20.04。根據https://lwn.net/Articles/531419/>和<https://stackoverflow.com/questions/3446727/how-does-linux-determine-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?如果在執行之前創建和殺死
ps aux
了佔用 PID 2-7 的其他程序,我如何查看這些程序是什麼?我嘗試查看/var/log/syslog
,但找不到任何有用的東西。
我很好奇為什麼最初從1跳到8?
當您以互動模式啟動 Bash 時,會讀取並執行 rc 文件(
~/.bashrc
如果登錄~/.profile
shell 和 中的相應系統範圍的文件),然後再提示您。/etc
如果您執行
bash --norc
這些 rc 文件,則不會執行,並且您的ps
命令將按預期具有 PID 2。如果在執行 ps aux 之前創建並殺死了佔用 PID 2-7 的其他程序,我如何查看這些程序是什麼?
執行
bash -x