デフォルトの最大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-6eea 3.0.101-0.35-pae#1 SMP Wed Jul 9 11:43:04 UTC 2014(c36987d)i686 i686 i386 GNU / Linuxです。
答え1
この値は、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).