Was ist die Reichweite einer PID unter Linux und Solaris?

12

Was ist der maximale und minimale Wert für eine PID (Prozess-ID) unter Linux und Solaris?

Graeme
quelle

Antworten:

13

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

Führen Sie den folgenden Befehl aus, um den maximalen PID-Wert zu erhalten, der dem Linux-Prozess zugewiesen werden kann:

cat /proc/sys/kernel/pid_max

Auf den meisten Linux-Computern ist das Ergebnis 32768 (= 2 15 ).

Bei Bedarf kann jedoch ein beliebiger Wert bis zu 4194304 (= 2 22 ) eingestellt werden. Server haben möglicherweise eine größere Grenze, um beispielsweise PID-Kollisionen zu vermeiden.

Tomasz Kowalczyk
quelle
15

Sie haben eine Linux-Antwort erhalten und akzeptiert. Unter Solaris ist der Maximalwert einer Prozess-ID ein durch den Kernel einstellbarer Parameter - pidmaxin /etc/system-, der standardmäßig 30.000 beträgt und zwischen 266 und 999.999 festgelegt werden kann. Beachten Sie, dass dies nicht max_nprocsder Fall ist. Hierbei handelt es sich um einen durch den Kernel einstellbaren Parameter mit einer geringfügig anderen Funktion.

JdeBP
quelle
Sie haben erwähnt, dass max_nprocsdas anders ist, was ist der Unterschied?
Jungvogel
1
@ffledgling max_nprocsbegrenzt die Anzahl gleichzeitiger Prozesse, unabhängig davon, ob nicht verwendete Pids verfügbar sind oder nicht.
Jlliagre
2

Das Minimum ist 1 und normalerweise ist das Maximum 2 ^ 15


quelle
... außer unter Solaris, wie in der Frage, wo es nicht ist.
JdeBP
Die minimale PID ist tatsächlich 0, dh der Kernel, der eigentlich kein Prozess ist ...
Jlliagre
Bekommt der Kernel eine PID?
Giovanni Tirloni
Es benötigt keine, wird aber mit pid 0 versehen. Unter Linux wird es vermutlich nur als PPID angezeigt, aber unter Solaris gibt es definitiv einen / proc / 0-Eintrag und ps meldet Prozess 0 als "sched".
Jlliagre
@jlliagre Ubuntu hat /proc/0weder ps -p 0funktioniert noch :) Als variabler PID-Initialisierer scheint das Beste zu sein-1
Aquarius Power