1. 程式人生 > >簡單了解linux系統下pid的取值範圍

簡單了解linux系統下pid的取值範圍

follow ech kernel 實現 進程 運行 linux內核 保留 get

一般PID_MAX=0x8000(可改),因此進程號的最大值為0x7fff,即32767。
  進程號0-299保留給daemon進程。
  現在的內核好像沒有這個限制了,《linux內核設計與實現》上說為了與老版本的unix和linux兼容,pid的最大值默認是32767(short int的最大值),如果你需要的話還可以不考慮和老版本兼容,修改/proc/sys/kernel/pid_max來提高上限用echo重新寫入一個數值到這個文件即可。FTP
  由於一般機器不可能同時跑那麽多進程+線程,所以32768是肯定夠用了,但是系統傾向於分配未使用過的pid給新進程,所以你會發現在正在運行的系統上,有很多低位的pid沒有使用,那是因為啟動的時候該pid被其它程序用過了,當然,你真有本事用到pid的最大值,系統也有辦法解決,那就是從頭(低位)搜索未被占用的pid分配給新進程。

簡單了解linux系統下pid的取值範圍