For Linux **What is the maximum value of the Process ID?** $ cat /proc/sys/kernel/pid_max 4194304 $ sysctl kernel.pid_max kernel.pid_max = 4194304 On a 32-bit system, the results would be 32768. If you are referring to the maximum value that can be achieved According to the definitions in the Kernel: https://elixir.bootlin.com/linux/latest/source/include/linux/threads.h#L34 /* * This controls the default maximum pid allocated to a process */ #define PID_MAX_DEFAULT (CONFIG_BASE_SMALL ? 0x1000 : 0x8000) /* * A maximum of 4 million PIDs should be enough for a while. * [NOTE: PID/TIDs are limited to 2^30 ~= 1 billion, see FUTEX_TID_MASK.] */ #define PID_MAX_LIMIT (CONFIG_BASE_SMALL ? PAGE_SIZE * 8 : \ (sizeof(long) > 4 ? 4 * 1024 * 1024 : PID_MAX_DEFAULT)) You can check for the CONFIG_BASE_SMALL in cat /boot/config-`uname -r`| grep -i config_base_small In my RHEL system, the calculation limited this to 2^22 = 4 * 1024 * 1024 ~ 4 Million Test performed >>> echo 4200000 > /proc/sys/kernel/pid_max; echo $? bash: echo: write error: Invalid argument 1 >>> echo 4194304 > /proc/sys/kernel/pid_max; echo $? 0 >>> echo 4194305 > /proc/sys/kernel/pid_max; echo $? bash: echo: write error: Invalid argument 1 **Also, is it possible to change a Process ID?** You cannot change the PID of the current process.<br> For changing the limit though, you can follow below. ## Using PROC interface. ## Changes Temporarily and immediate. It reverts to the default value after reboot echo "VALUE" > /proc/sys/kernel/pid_max ## Using sysctl interface; It is temporary and immediate too. sysctl -w kernel.pid_max=VALUE To persist this value, add the parameter to the either the file /etc/sysctl.conf or some file in /etc/sysctl.d/. To reload it: sysctl -p [File from which the conf needs to be loaded if present] Reference:<br> - https://itblog.webdigg.org/302-how-to-reload-sysctl-conf-variables-on-linux/ - https://linux.die.net/man/8/sysctl