04-分配进程ID
5.2.1 分配进程ID
缺省情况下,内核将进程ID的最大值设置为32 768,这是为了和老的UNIX系统兼容,因为这些系统使用了有符号16位数来表示进程ID。系统管理员可以通过修改/proc/sys/kernel/pid_max把这个值设置成更大的值,但是会牺牲一些兼容性。
内核分配进程ID是以严格的线性方式执行的。如果当前pid的的最大值是17,那么分配给新进程的pid值就为18,即使当新进程开始运行时,pid为17的进程已经不再运行了。内核分配的pid值达到了/proc/sys/kernel/pid_max之后,才会重用以前已经分配过的pid值。因此,尽管内核不保证长时间的进程ID的唯一性,但这种分配方式至少可以保证pid在短时间内是稳定且唯一的。