Quelle est la valeur maximale de l'ID de processus ?
Est-il également possible de modifier un ID de processus ?
Réponse acceptée :
Sous Linux, vous pouvez trouver la valeur PID maximale pour votre système avec ceci :
$ cat /proc/sys/kernel/pid_max
Cette valeur peut également être écrite à l'aide du même fichier, mais la valeur ne peut être étendue que jusqu'à un maximum théorique de 32768 pour les systèmes 32 bits ou 4194304 pour les systèmes 64 bits :
$ echo 32768 > /proc/sys/kernel/pid_max
Il semble être une pratique normative sur la plupart des systèmes 64 bits de définir cette valeur sur la même valeur que celle trouvée sur les systèmes 32 bits, mais c'est par convention plutôt qu'une exigence.
De man 5 proc
:
/proc/sys/kernel/pid_max This file (new in Linux 2.5) specifies the value at which PIDs wrap around (i.e., the value in this file is one greater than the maximum PID). The default value for this file, 32768, results in the same range of PIDs as on earlier kernels. On 32-bit platfroms, 32768 is the maximum value for pid_max. On 64-bit systems, pid_max can be set to any value up to 2^22 (PID_MAX_LIMIT, approximately 4 million).
Et non, vous ne pouvez pas modifier le PID d'un processus en cours d'exécution. Il est attribué en tant que numéro séquentiel par le noyau au moment où le processus démarre et c'est son identifiant à partir de ce moment-là. La seule chose que vous puissiez faire pour en obtenir un nouveau est que votre code crée un nouveau processus et termine l'ancien.