Linux PIDS如何递增

Linux PIDS如何递增

为什么Linux下的PIDS(一般)会增加4?我能想到的唯一例外是由 systemd 运行的启动进程,当它们相关时该进程加 1,否则加 2。

数字 4 是如何被选为默认值的?它可以更改吗?

答案1

PID 加一。

启动两个 shell。

外壳1

echo $$
# we assume 1234 as output

外壳2

strace -f -p 1234 -e trace=clone

外壳1

sleep 1 ; sleep 1

外壳2

# output like
clone(Process 25484 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f4111a029d0) = 25484
[pid 25484] +++ exited with 0 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25484,si_status=0, si_utime=0, si_stime=0} ---
clone(Process 25485 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f4111a029d0) = 25485
[pid 25485] +++ exited with 0 +++
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25485,     si_status=0, si_utime=0, si_stime=0} ---
clone(Process 25486 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,child_tidptr=0x7f4111a029d0) = 25486
[pid 25486] +++ exited with 0 +++

答案2

除特定补丁(如gr-security.如果您看到增量为 4,这可能是由于您的 shell 每次都执行一些额外的命令,例如通过变量$PROMPT_COMMAND

相关内容