Process

Process ID 的最大值是多少?

  • October 5, 2020

Process ID 的最大值是多少?

另外,是否可以更改程序 ID?

在 Linux 上,您可以使用以下命令找到系統的最大 PID 值:

$ cat /proc/sys/kernel/pid_max

該值也可以使用同一個文件寫入,但是對於 32 位系統,該值只能擴展到理論最大值 32768,對於 64 位系統,該值只能擴展到 4194304:

$ echo 32768 > /proc/sys/kernel/pid_max

在大多數 64 位系統上,將此值設置為與 32 位系統上相同的值似乎是一種規範做法,但這是慣例而不是要求。

來自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).

不,您不能更改正在執行的程序的 PID。它在程序啟動時被核心分配為一個序列號,從那時起它就是它的標識符。你唯一能做的就是讓你的程式碼派生一個新程序並終止舊程序。

引用自:https://unix.stackexchange.com/questions/16883