Phạm vi của một PID trên Linux và Solaris là gì?


12

Giá trị tối đa và tối thiểu cho một PID (ID tiến trình) trên Linux và Solaris là gì?

Câu trả lời:


13

Từ http://www.alexxoid.com/blog/linux/getting-the-max-pid-value-for-linux- Process.html :

Để có được giá trị PID tối đa có thể được gán cho quy trình Linux, hãy chạy lệnh sau:

cat /proc/sys/kernel/pid_max

Trên hầu hết các máy Linux, kết quả là 32768 (= 2 15 ).

Tuy nhiên, nó có thể được đặt thành bất kỳ giá trị nào lên tới 4194304 (= 2 22 ) nếu cần. Máy chủ có thể có giới hạn lớn hơn để tránh xung đột PID, ví dụ.


15

Bạn đã có, và chấp nhận, một câu trả lời Linux. Trên Solaris, giá trị tối đa của ID tiến trình là một tham số có thể điều chỉnh kernel - pidmaxtrong /etc/system- mặc định là 30.000 và có thể được đặt ở bất kỳ đâu trong khoảng từ 266 đến 999.999. Lưu ý rằng đây không phải max_nprocslà một tham số có thể điều chỉnh kernel với chức năng khác biệt tinh tế.


Bạn đã đề cập rằng max_nprocskhác nhau, sự khác biệt là gì?
ffledgling

1
@ffledgling max_nprocsgiới hạn số lượng các quy trình đồng thời, bất kể các pids không sử dụng có sẵn hay không.
jlliagre

2

Tối thiểu là 1 và thường là tối đa là 2 ^ 15


... Ngoại trừ Solaris, như trong câu hỏi, nó không ở đâu.
JdeBP

PID tối thiểu thực sự là 0, tức là hạt nhân không phải là một quá trình thực sự ...
jlliagre

hạt nhân có được một PID?
Giovanni Tirloni

Nó không cần một cái nhưng được cung cấp pid 0. Trong Linux, tôi đoán nó chỉ được hiển thị dưới dạng PPID nhưng dưới Solaris, chắc chắn có mục / Proc / 0 và ps báo cáo quy trình 0 là "lịch trình".
jlliagre

@jlliagre ubfox không có tác dụng gì /proc/0cả ps -p 0:), dù sao, với tư cách là công cụ khởi tạo pid biến, điều tốt nhất dường như là-1
Aquarius Power
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.