Qual é o valor máximo do ID do processo?
Além disso, é possível alterar uma identificação de processo?
No Linux, você pode encontrar o valor máximo de PID para o seu sistema com este:
$ cat /proc/sys/kernel/pid_max
Esse valor também pode ser gravado usando o mesmo arquivo, no entanto, o valor só pode ser estendido até um máximo teórico de 32768 para sistemas de 32 bits ou 4194304 para 64 bits:
$ echo 32768 > /proc/sys/kernel/pid_max
Parece ser prática normativa na maioria dos sistemas de 64 bits definir esse valor para o mesmo valor encontrado nos sistemas de 32 bits, mas isso é por convenção e não por um requisito.
De man 5 proc
:
/proc/sys/kernel/pid_max This file (new in Linux 2.5) specifies the value at which PIDs wrap around (i.e., the value in this file is one greater than the maximum PID). The default value for this file, 32768, results in the same range of PIDs as on earlier kernels. On 32-bit platfroms, 32768 is the maximum value for pid_max. On 64-bit systems, pid_max can be set to any value up to 2^22 (PID_MAX_LIMIT, approximately 4 million).
E não, você não pode alterar o PID de um processo em execução. Ele é atribuído como um número seqüencial pelo kernel no momento em que o processo é iniciado e é o identificador a partir desse momento. A única coisa que você pode fazer para obter um novo é fazer com que seu código bifurque um novo processo e encerre o antigo.
Outras respostas explicaram
/proc/sys/kernel/pid_max
para Linux eMas a pergunta não especificou um sistema operacional. Então, aqui estão alguns outros:
pidmax
no/etc/system
- que padroniza para 30.000 e pode ser definido entre 266 e 999.999. Observe que isso não émax_nprocs
, que é um parâmetro ajustável do kernel com uma função sutilmente diferente.process_id_min
eprocess_id_max
prescrevem o intervalo de IDs de processo permitidos.fonte
No FreeBSD, o valor do PID está entre 0 e 99999, de acordo com
intro(2)
(link) . Aqui está uma citação do manual:Se você deseja ler o código fonte por conta própria,
PID_MAX
é definido emsys/sys/proc.h
(link) .fonte