【閒聊】Unix 上的PID會大於65535嗎? - PCZONE 討論區

返回   PCZONE 討論區 > ▲ -- 電 腦 軟 體 討 論 區 > -- FreeBSD & Linux 討 論 版


PCZONE 討論區



通知

-- FreeBSD & Linux 討 論 版 因為本站採用 FreeBSD 作業系統,所以自己本身也多學了一些技巧,希望各位在這裡互相討論 Unix 作業系統及程式等相關問題。

隔壁老王
【閒聊】Unix 上的PID會大於65535嗎?
如題
其實之前小弟自己的觀念都是PID(Process ID)應該是在1~655355之間
但是前幾天公司聽朋友說PID>99999會造成某些問題
所以想請問一下各位先進
是不是我的觀念一直都是錯誤的呢
Thanks.

回覆
進階會員

FreeBSD default 支援到最大的 UID 是 32000

man page 裡邊有提到
man adduser

uid Automatically generated or your choice, must be less than 32000.

adduser 的 source 有這麼一行

$uid_end = 32000; # max. uid 


另外

solaris default 支援到最大的 UID 是 2147483647

man page 有提到


-u uid
The UID of the new user. This UID must be a non-
negative decimal integer below MAXUID as defined in
<sys/param.h>. The UID defaults to the next available
(unique) number above the highest number currently
assigned. For example, if UIDs 100, 105, and 200 are
assigned, the next default UID number will be 201.
(UIDs from 0-99 are reserved for possible use in
future applications.)


看看 /usr/include/sys/param.h 這支

裡面定義了
#define MAXUID 2147483647 /* max user id */


太大的 UID 會造成什麼問題?
不妨提出來大家討論討論。
回覆
隔壁老王

這個問題我們後來找到原因了
證實的確PID是有可能會>99999
一般照理來說PID是會被reuse的
所以我們不常看到這麼大的PID
出狀況的是客戶的AIX,因為上面某個AP產生了一堆zombie
把PID用了一堆

至於會有甚麼問題,對系統本身應該是還好
但是對一些上面的ap如果沒考慮到這點的話就有危險
比如說用regular expression去切的時候就有可能出錯....
回覆
進階會員

sorry
我答非所問...我把PID看成UID了

如果PID>99999,大部分的情形就是你所說的那樣
有些程式 run 到 zombie,佔住了PID number,所以沒有reuse
也很有可能 parent process 沒有正常的收拾掉已經工作完成(或是工作不正常)child process
,釋放 PID number,來提供系統reuse 。

有時候,這些zombie process太多會拖垮系統亦或是大大的降低系統的效能。
更有些時候zombie 硬 kill 也砍不掉,搞到最後,只有將機器reboot一途。

回覆







 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。