2012-07-04 22 views
55

Có chính sách nào trong Linux về việc tái chế các PID đã sử dụng không? Ý tôi là, nếu một PI đã được sử dụng, sau này nó sẽ được sử dụng lại bao nhiêu lần nữa?Tái chế PID PID

+0

Tôi cũng tò mò, chỉ là tự hỏi về cách tìm kiếm một quy trình bằng cách pid sẽ hoạt động nếu có gì mới lấy số cũ –

+0

Dường như với tôi rằng các PID chỉ nên được sử dụng để xác định các quy trình đang chạy. Nếu bạn tuân theo chính sách đó, cách thức chính xác trong đó các PID được tái chế sẽ không bao giờ ảnh hưởng đến bạn. Cố gắng dựa vào cách mà các PID được tái chế là mong manh. Vì lý do đó một mình, bạn không nên làm điều đó. Hơn nữa, tôi không thể tưởng tượng được hành vi đó có thể hữu ích như thế nào. Điều duy nhất bạn có thể muốn biết là PID có thể lớn như thế nào. Ví dụ. một hệ quả của việc này là bao nhiêu tiến trình mà hệ thống của bạn hỗ trợ. Lưu ý rằng không có kiến ​​thức về cách thức hoạt động tái chế là cần thiết để đạt được điều này. – allyourcode

+4

@allyourcode thử viết một chương trình như 'top' mà không phải lo lắng về cách tái chế PID. –

Trả lời

42

Khi quy trình mới được mở rộng, PID sẽ tăng lên giới hạn phụ thuộc vào hệ thống và sau đó quấn quanh. Hạt nhân sẽ không tái sử dụng PID trước khi xảy ra xung quanh.

Giới hạn (số lượng pids tối đa) là /proc/sys/kernel/pid_max. The manual nói:

/proc/sys/kernel/pid_max (kể từ Linux 2.5.34)

tập tin này xác định giá trị mà tại đó PID quấn quanh (ví dụ, giá trị trong tập tin này là một trong những lớn hơn PID tối đa) . Giá trị mặc định cho tập tin này, 32768, kết quả trong cùng một phạm vi PID như trên hạt nhân trước đó

+0

OK. Vậy chính sách gia tăng này có được tuân thủ nghiêm ngặt không? Hoặc nó có thể tái sử dụng một PID trước khi đạt đến giới hạn? – Cygnus

+0

Tôi nghĩ rằng một pid đã được tái sử dụng trước khi bọc, nhưng sau khi 'ps -A -L-lwp | sort-n' Tôi tìm thấy pids khoảng 32372 vẫn còn sử dụng; do đó, tôi đoán là nó được gói xung quanh rất nhanh trên hệ thống của tôi! ngay cả khi không quá thường xuyên, nhưng ít nhất là khi khởi động. –