Jaki jest zasięg PID w systemach Linux i Solaris?

12

Jaka jest maksymalna i minimalna wartość PID (ID procesu) w systemach Linux i Solaris?

Graeme
źródło

Odpowiedzi:

13

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

Aby uzyskać maksymalną wartość PID, którą można przypisać procesowi Linux, uruchom następującą komendę:

cat /proc/sys/kernel/pid_max

Na większości komputerów z systemem Linux wynik to 32768 (= 2 15 ).

Jednakże, może być ustawiona na dowolną wartość, aż do 4194304 (= 2, 22 ), jeżeli jest to konieczne. Na przykład serwery mogą mieć większy limit, aby uniknąć kolizji PID.

Tomasz Kowalczyk
źródło
15

Masz i zaakceptowałeś odpowiedź Linuksa. Solaris, wartość maksymalna z ID procesu jest parametrem przestrajanie jądra - pidmaxw /etc/system- że domyślnie 30000, które można ustawić w dowolnym miejscu pomiędzy 266 a 999.999. Zauważ, że nie max_nprocsjest to parametr dostrajany przez jądro z subtelnie inną funkcją.

JdeBP
źródło
Wspomniałeś, że max_nprocsjest inaczej, jaka jest różnica?
sfledgling
1
@ffledgling max_nprocsogranicza liczbę jednoczesnych procesów, niezależnie od tego, czy nieużywane pidy są dostępne, czy nie.
jlliagre
2

Minimum to 1, a zwykle maksimum to 2 ^ 15


źródło
... z wyjątkiem Solaris, jak w pytaniu, gdzie go nie ma.
JdeBP
Minimalny PID to w rzeczywistości 0, tzn. Jądro, które tak naprawdę nie jest procesem ...
jlliagre
czy jądro otrzymuje PID?
Giovanni Tirloni,
Nie potrzebuje go, ale otrzymuje pid 0. Pod Linuksem wydaje mi się, że jest pokazany tylko jako PPID, ale w Solarisie zdecydowanie jest wpis / proc / 0, a raporty ps przetwarzają 0 jako „harmonogram”.
jlliagre
@jlliagre ubuntu nie ma żadnego z nich /proc/0nie ps -p 0działa :), zresztą jako zmienny inicjator pid najlepiej wydaje się być-1
Aquarius Power