Hallo
ich hab ein Shell Script laufen, in dem eine While Schleife
mit "Sleep" drin vorkommt, so das die Schleife alle 5 Sekunden durchläuft.
Jetzt hab ich nachgeschaut mit ps -A ob alles gutläuft, und ... das Script wird schön aufgeführt.
Gleichzeitig erzeugt jedes Sleep alle 5 Sekunden eine neue PID,
so das in ps -A die PID's immer weiter steigen und steigen und steigen.
Ist das schlimm,
was kann ich dagegen tun?
Sleep in Shellscript erzeugt immer höheren PID
Re: Sleep in Shellscript erzeugt immer höheren PID
Das ist ganz normal. Für jeden Aufruf eines Kommandos wird ein Kindprozess erzeugt in dem das Kommando abläuft. Wenn dieser Kindprozess (das sleep) fertig ist beendet es sich. Beim nächsten Aufruf wird ein neuer Kindprozess erzeugt -> neue PID.gnude hat geschrieben: ich hab ein Shell Script laufen, in dem eine While Schleife
mit "Sleep" drin vorkommt, so das die Schleife alle 5 Sekunden durchläuft.
Jetzt hab ich nachgeschaut mit ps -A ob alles gutläuft, und ... das Script wird schön aufgeführt.
Gleichzeitig erzeugt jedes Sleep alle 5 Sekunden eine neue PID,
so das in ps -A die PID's immer weiter steigen und steigen und steigen.
Die PID der Shell mit der das Script selbst ausgeführt wird bleibt dabei gleich.
Schau dir dazu mal die Ausgabe von `ps f' an, da siehst du die Eltern-Kind-Beziehung.
Use ed once in a while!
Re: Sleep in Shellscript erzeugt immer höheren PID
Ok
ich verstehe das.
Da es sich aber um einen Server handelt... wie hoch kann die PID denn gehen?
Ohne das es Probleme gibt?
ich verstehe das.
Da es sich aber um einen Server handelt... wie hoch kann die PID denn gehen?
Ohne das es Probleme gibt?
Re: Sleep in Shellscript erzeugt immer höheren PID
Ob Server oder nicht ist unerheblich. Interessant ist nur die Anzahl gleichzeitig laufender Prozesse, und die könnte bei Servern höher sein.gnude hat geschrieben: Da es sich aber um einen Server handelt...
Das Limit ist implementierungsabhängig und AFAIR in keiner Weise spezifiziert. Gängig ist eine 16bit Zahl.wie hoch kann die PID denn gehen?
Ohne das es Probleme gibt?
Wenn das obere Limit erreicht wurde wrappt die Suche und es geht unten wieder los. Die nächste freie PID wird für den neuen Prozess genommen.
Problematisch wäre es wenn soviele Prozess *gleichzeitig* laufen dass es keine freie PID mehr gibt ... aber sowas kommt im Normalbetrieb nicht mal annähernd vor.
Deine sleep-Prozesse beenden sich ja nach Ablauf der Zeit wieder und geben die PID frei. (Dass nicht genau diese wieder verwendet wird liegt vermutlich daran, dass im Schleifenkörper auch irgendwo ein Prozess erzeugt wird.)
Use ed once in a while!
Re: Sleep in Shellscript erzeugt immer höheren PID
Aha.
Vielen Dank für diese Information. Brauch mir also nicht weiter gedanken machen um die Anzahl der Prozesse....
Dann ist alles gut.
Vielen Dank für diese Information. Brauch mir also nicht weiter gedanken machen um die Anzahl der Prozesse....
Dann ist alles gut.