Quelle est la portée d'un PID sous Linux et Solaris?

12

Quelle est la valeur maximale et minimale d'un PID (Process ID) sous Linux et Solaris?

Graeme
la source

Réponses:

13

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

Pour obtenir la valeur PID max pouvant être affectée au processus Linux, exécutez la commande suivante:

cat /proc/sys/kernel/pid_max

Sur la plupart des machines Linux, le résultat est 32768 (= 2 15 ).

Cependant, il peut être réglé sur n'importe quelle valeur jusqu'à 4194304 (= 2 22 ) si nécessaire. Les serveurs peuvent avoir une limite plus grande pour éviter les collisions PID, par exemple.

Tomasz Kowalczyk
la source
15

Vous avez eu et accepté une réponse Linux. Sous Solaris, la valeur maximale d'un ID de processus est un paramètre ajustable par le noyau - pidmaxpar /etc/systemdéfaut - 30 000 et pouvant être défini entre 266 et 999 999. Notez que ce n'est pas le cas max_nprocs, qui est un paramètre ajustable du noyau avec une fonction subtilement différente.

JdeBP
la source
Vous avez dit que max_nprocsc'était différent, quelle est la différence?
ffledgling
1
@ffledgling max_nprocslimite le nombre de processus simultanés, que les pids inutilisés soient disponibles ou non.
jlliagre
2

Le minimum est 1 et généralement le maximum est 2 ^ 15


la source
... sauf sur Solaris, comme dans la question, où il n'est pas.
JdeBP
Le PID minimum est en fait 0, c'est-à-dire le noyau qui n'est pas vraiment un processus ...
jlliagre
le noyau obtient-il un PID?
Giovanni Tirloni
Il n'en a pas besoin mais reçoit le pid 0. Sous Linux, je suppose qu'il n'est affiché que comme PPID mais sous Solaris, il y a certainement une entrée / proc / 0 et ps rapporte le processus 0 comme "sched".
jlliagre
@jlliagre ubuntu /proc/0ne ps -p 0fonctionne pas non plus :), de toute façon, en tant qu'initialiseur pid variable, le meilleur semble être-1
Aquarius Power