¿Cuál es el rango de un PID en Linux y Solaris?

12

¿Cuál es el valor máximo y mínimo para un PID (ID de proceso) en Linux y Solaris?

Graeme
fuente

Respuestas:

13

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

Para obtener el valor PID máximo que se puede asignar al proceso de Linux, ejecute el siguiente comando:

cat /proc/sys/kernel/pid_max

En la mayoría de las máquinas Linux, el resultado es 32768 (= 2 15 ).

Sin embargo, se puede establecer en cualquier valor hasta 4194304 (= 2 22 ) si es necesario. Los servidores pueden tener un límite mayor para evitar colisiones PID, por ejemplo.

Tomasz Kowalczyk
fuente
15

Has tenido y aceptado una respuesta de Linux. En Solaris, el valor máximo de una ID de proceso es un parámetro del núcleo sintonizable - pidmaxen /etc/system- que por defecto a 30.000 y que se puede fijar en cualquier lugar entre 266 y 999.999. Tenga en cuenta que esto no max_nprocslo es, que es un parámetro ajustable del núcleo con una función sutilmente diferente.

JdeBP
fuente
Mencionaste que max_nprocses diferente, ¿cuál es la diferencia?
incipiente
1
@ffledgling max_nprocslimita el número de procesos concurrentes, independientemente de si los pids no utilizados están disponibles o no.
jlliagre
2

El mínimo es 1 y generalmente el máximo es 2 ^ 15


fuente
... excepto en Solaris, como en la pregunta, donde no está.
JdeBP
El PID mínimo es en realidad 0, es decir, el núcleo que no es realmente un proceso ...
jlliagre
Cómo obtiene el núcleo un PID?
Giovanni Tirloni
No necesita uno, pero se le pide pid 0. En Linux, supongo que solo se muestra como un PPID, pero en Solaris definitivamente hay una entrada / proc / 0 y el proceso de informes ps 0 como "programado".
jlliagre
@jlliagre ubuntu no tiene /proc/0ni ps -p 0funciona :), de todos modos, como un inicializador pid variable, lo mejor parece ser-1
Aquarius Power