Was ist der maximale Wert der Prozess-ID?
Ist es auch möglich, eine Prozess-ID zu ändern?
Akzeptierte Antwort:
Unter Linux finden Sie den maximalen PID-Wert für Ihr System hiermit:
$ cat /proc/sys/kernel/pid_max
Dieser Wert kann auch mit derselben Datei geschrieben werden, jedoch kann der Wert nur bis zu einem theoretischen Maximum von 32768 für 32-Bit-Systeme oder 4194304 für 64-Bit-Systeme erweitert werden:
$ echo 32768 > /proc/sys/kernel/pid_max
Es scheint auf den meisten 64-Bit-Systemen normative Praxis zu sein, diesen Wert auf den gleichen Wert zu setzen wie auf 32-Bit-Systemen, aber dies ist eher eine Konvention als eine Anforderung.
Von 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).
Und nein, Sie können die PID eines laufenden Prozesses nicht ändern. Es wird vom Kernel beim Start des Prozesses als fortlaufende Nummer zugewiesen und ist von diesem Zeitpunkt an seine Kennung. Das Einzige, was Sie tun könnten, um einen neuen zu erhalten, ist, Ihren Code in einen neuen Prozess zu verzweigen und den alten zu beenden.