อะไรคือช่วงของ PID บน Linux และ Solaris?


คำตอบ:


13

จากhttp://www.alexxoid.com/blog/linux/getting-the-max-pid-value-for-linux-process.html :

ในการรับค่า PID สูงสุดที่สามารถกำหนดให้กับกระบวนการ Linux ให้รันคำสั่งต่อไปนี้:

cat /proc/sys/kernel/pid_max

บนเครื่อง Linux ส่วนใหญ่ผลลัพธ์คือ32768 (= 2 15 )

อย่างไรก็ตามสามารถกำหนดเป็นค่าใดก็ได้สูงสุด 4194304 (= 2 22 ) หากจำเป็น เซิร์ฟเวอร์อาจมีขีด จำกัด ที่ใหญ่กว่าเพื่อหลีกเลี่ยงการชน PID


15

คุณได้รับคำตอบจาก Linux และยอมรับแล้ว บน Solaris ค่าสูงสุดของกระบวนการ ID เป็นพารามิเตอร์ที่เคอร์เนลพริ้ง - pidmaxใน/etc/system- ว่าเริ่มต้นที่ 30,000 และที่สามารถตั้งค่าใดก็ได้ระหว่าง 266 และ 999,999 โปรดทราบว่านี่ไม่ใช่max_nprocsซึ่งเป็นพารามิเตอร์ที่ปรับได้ของเคอร์เนลที่มีฟังก์ชั่นที่แตกต่างกันอย่างละเอียด


คุณพูดถึงmax_nprocsมันแตกต่างกันความแตกต่างคืออะไร?
ffledgling

1
@ffledgling max_nprocsจำกัด จำนวนกระบวนการที่เกิดขึ้นพร้อมกันโดยไม่คำนึงว่ามี pids ที่ไม่ได้ใช้งานหรือไม่
jlliagre

2

ต่ำสุดคือ 1 และโดยปกติสูงสุดคือ 2 ^ 15


... ยกเว้นบน Solaris อย่างที่มันไม่ใช่
JdeBP

ขั้นต่ำ PID เป็นจริง 0 คือเมล็ดที่ไม่ได้เป็นกระบวนการจริงๆ ...
jlliagre

เคอร์เนลจะได้รับ PID หรือไม่
Giovanni Tirloni

ไม่จำเป็นต้องมี แต่ให้ pid 0 ภายใต้ Linux ฉันคิดว่ามันจะแสดงเป็น PPID เท่านั้น แต่ภายใต้ Solaris มีรายการ / proc / 0 และ ps รายงานกระบวนการ 0 เป็น "sched"
jlliagre

@jlliagre อูบุนตูไม่มี/proc/0ค่าps -p 0ทำงาน :) แล้วเป็น initializer pid ตัวแปรที่ดีที่สุดน่าจะเป็น-1
ราศีกุมภ์พลังงาน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.