$ cat /proc/sys/kernel/pid_max
32768
$ ulimit -a |grep processes
max user processes (-u) 77301
$ cat /proc/1/limits |grep processes
Max processes 77301 77301 p
1./proc/sys/kernel/pid_max
is maximum value for PID
From man 5 proc
:
/proc/sys/kernel/pid_max (since Linux 2.5.34)
This file 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 platforms, 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).
When a new process is created, it is assigned next number available of kernel processes counter. When it reached pid_max
, the kernel restart the processes counter to 300. From linux source code, pid.c
file:
....
#define RESERVED_PIDS 300
....
static int alloc_pidmap(struct pid_namespace *pid_ns)
{
int i, offset, max_scan, pid, last = pid_ns->last_pid;
struct pidmap *map;
pid = last + 1;
if (pid >= pid_max)
pid = RESERVED_PIDS;
2. ulimit -u
is maximum value for number of processes
.
From man bash
:
ulimit [-HSTabcdefilmnpqrstuvx [limit]]
.....
-u The maximum number of processes available to a single user
3.