What is the maximum and minimum value for a PID (Process ID) on Linux and Solaris?


From http://www.alexxoid.com/blog/linux/getting-the-max-pid-value-for-linux-process.html:

To get the max PID value that can be assigned to Linux process, run the following command:

cat /proc/sys/kernel/pid_max

On most Linux machines, the result is 32768 (= 215).

However, it can be set to any value up to 4194304 (= 222) if necessary. Servers might have a larger limit to avoid PID collisions, for example.


You've had, and accepted, a Linux answer. On Solaris, the maximum value of a process ID is a kernel tunable parameter — pidmax in /etc/system — that defaults to 30,000 and that can be set anywhere between 266 and 999,999. Note that this is not max_nprocs, which is a kernel tunable parameter with a subtly different function.

  • You mentioned that max_nprocs is different, what's the difference? – ffledgling Mar 14 '17 at 11:52
  • 1
    @ffledgling max_nprocs limits the number of concurrent processes, regardless of whether unused pids are available or not. – jlliagre May 18 '18 at 10:26

The minimum is 1 and usually the maximum is 2^15

  • ... except on Solaris, as in the question, where it isn't. – JdeBP Jun 10 '11 at 14:45
  • The minimum PID is actually 0, i.e. the kernel which isn't a process really ... – jlliagre Jun 10 '11 at 15:05
  • do the kernel get a PID? – Giovanni Tirloni Jun 13 '11 at 9:58
  • It doesn't need one but is given pid 0. Under Linux, I guess it is only shown as a PPID but under Solaris, there is definitely a /proc/0 entry and ps reports process 0 as "sched". – jlliagre Jun 14 '11 at 5:32
  • @jlliagre ubuntu has no /proc/0 neither ps -p 0 works :), anyway, as a variable pid initializer, the best seems to be -1 – Aquarius Power Apr 17 '16 at 21:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.