Como o incremento de PIDS do Linux

0

Por que o PIDS no Linux (geralmente) aumenta em 4? A única exceção que posso imaginar são os processos de inicialização executados pelo systemd, que são incrementados em 1 quando estão relacionados ou 2 de outra forma.

Como foi o número 4 escolhido como padrão e é variável?

    
por user99655 17.01.2015 / 21:25

2 respostas

3

Os PIDs são aumentados em um.

Inicie dois shells.

shell 1

echo $$
# we assume 1234 as output

shell 2

strace -f -p 1234 -e trace=clone

shell 1

sleep 1 ; sleep 1

shell 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 +++
    
por 17.01.2015 / 22:36
2

Os PIDs são incrementados em um, exceto os patches específicos, como gr-security . Se você ver um incremento por etapas de 4, isso provavelmente se deve ao fato de seu shell ter executado alguns comandos extras toda vez, por exemplo, através da variável $PROMPT_COMMAND .

    
por 17.01.2015 / 22:57