編碼的世界 / 優質文選 / 生物

linux系統下pid的取值範圍


2022年7月22日
-   

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

熱門文章