web-dev-qa-db-ja.com

カーネルの最大PID番号を変更するにはどうすればよいですか?

デフォルトのPID最大数は32768です。この情報を取得するには、次のように入力します。

cat /proc/sys/kernel/pid_max 
32768

または

sysctl kernel.pid_max
kernel.pid_max = 32768

この番号を変更したいのですが...変更できません。ええと、実際には、それをより低い値または同じ値に変更できます。例えば:

linux-6eea:~ # sysctl -w  kernel.pid_max=32768
kernel.pid_max = 32768

しかし、32768より大きい値を指定することはできません。次に例を示します。

linux-6eea:~ # sysctl -w  kernel.pid_max=32769
error: "Invalid argument" setting key "kernel.pid_max"

何か案は ?

PS:私のカーネルはLinuxです。linux-6eea3.0.101-0.35-pae#1 SMP Wed Jul 9 11:43:04 UTC 2014(c36987d)i686 i686 i386 GNU/Linux

8
drpaneas

この値は、32ビットシステムの場合は理論上の最大値32768、64ビットシステムの場合は4194304までしか拡張できません。

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).
9
Jan