我正在运行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,但是找不到任何有用的东西。
发布于 2021-05-11 22:25:55
我很好奇为什么最初从1跳到8?
当您在交互模式下启动Bash时,rc文件(~/.bashrc、~/.profile (登录shell )和/etc中相应的系统范围文件)在给出提示符之前会被读取和执行。
如果您执行bash --norc,这些rc文件将不会被执行,并且您的ps命令将像预期的那样具有PID 2。
如果在运行ps之前创建和终止了占用PID 2-7的附加进程,我如何查看这些进程是什么?
执行bash -x
https://unix.stackexchange.com/questions/649281
复制相似问题