Ich bin auch neugierig und habe mich nur gefragt, wie das
Nachschlagen
2
Mir scheint, dass PIDs nur verwendet werden sollten, um aktuell laufende Prozesse zu identifizieren. Wenn Sie diese Richtlinie befolgen, wird die genaue Art und Weise, wie PIDs recycelt werden, Sie niemals beeinflussen. Der Versuch, sich darauf zu verlassen, wie PIDs recycelt werden, ist fragil. Allein aus diesem Grund sollten Sie es nicht tun. Außerdem kann ich mir nicht vorstellen, wie nützlich ein solches Verhalten sein könnte. Das einzige, was Sie vielleicht wissen möchten, ist, wie groß PIDs sein können. Eine Folge davon ist beispielsweise, wie viele Prozesse Ihr System unterstützt. Beachten Sie, dass keine Kenntnisse darüber erforderlich sind, wie Recycling funktioniert, um zu dieser Erkenntnis zu gelangen.
Allyourcode
6
@allyourcode Versuchen Sie, ein Programm wie topzu schreiben, ohne sich Gedanken darüber zu machen, wie PIDs recycelt werden.
notbad.jpeg
Um Ihnen ein Beispiel aus dem wirklichen Leben zu geben, wie oft sich die PID wiederholen kann, sehe ich sie etwa alle 2 Stunden auf häufig verwendeten Ubuntu-Hosts, manchmal sogar noch häufiger.
Phoebe
Antworten:
58
Wenn neue Prozesse eingeführt werden, steigen die PIDs auf ein systemabhängiges Limit und werden dann umbrochen. Der Kernel wird eine PID nicht wiederverwenden, bevor dieser Wrap-Around erfolgt.
Die Grenze (maximale Anzahl von Pids) ist /proc/sys/kernel/pid_max. Das Handbuch sagt:
/proc/sys/kernel/pid_max (seit Linux 2.5.34)
Diese Datei gibt den Wert an, bei dem PIDs umbrochen werden (dh der Wert in dieser Datei ist um eins größer als die maximale PID). Der Standardwert für diese Datei 32768führt zu demselben PID-Bereich wie bei früheren Kerneln
OK. Diese zunehmende Politik wird also strikt befolgt? Oder kann es eine PID wiederverwenden, bevor das Limit erreicht wurde?
Cygnus
1
Ich dachte, eine PID wäre vor dem Wickeln wiederverwendet worden, aber nachdem ps -A -L -o lwp |sort -nich Pids gefunden hatte, waren noch 32372 in Gebrauch; Ich vermute also, dass es sich auf meinem System sehr schnell dreht! auch wenn nicht zu oft, aber zumindest beim booten.
top
zu schreiben, ohne sich Gedanken darüber zu machen, wie PIDs recycelt werden.Antworten:
Wenn neue Prozesse eingeführt werden, steigen die PIDs auf ein systemabhängiges Limit und werden dann umbrochen. Der Kernel wird eine PID nicht wiederverwenden, bevor dieser Wrap-Around erfolgt.
Die Grenze (maximale Anzahl von Pids) ist
/proc/sys/kernel/pid_max
. Das Handbuch sagt:quelle
ps -A -L -o lwp |sort -n
ich Pids gefunden hatte, waren noch 32372 in Gebrauch; Ich vermute also, dass es sich auf meinem System sehr schnell dreht! auch wenn nicht zu oft, aber zumindest beim booten./superuser/135007/how-are-pids-generated
Dies sollte Ihre Frage beantworten - es scheint, dass PIDs recycelt werden, wenn sie aufgebraucht sind, und die noch zugewiesenen überspringen.
quelle