No Linux, você pode encontrar o valor máximo de PID para o seu sistema com isto:
$ cat /proc/sys/kernel/pid_max
Este valor também pode ser escrito 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 com o mesmo valor encontrado em sistemas de 32 bits, mas isso é por convenção, e não por um requisito.
Em 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ê poderia fazer para obter um novo é fazer com que o código bifurque um novo processo e termine o antigo.