PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Laufzeit eines Prozesses (PERL, fork())



WinstonWolfe
03.07.06, 11:21
Hallo zusammen,

ich habe in PERL einen kleinen Dämonen programmiert, der über die serielle Schnittstelle eine Maschine überwacht. In der Prozessliste (ps ax) wird nach mittlerweile 14tägigem, ununterbrochenen Betrieb eine Laufzeit von 166:04 angezeit, wogegen andere Dämonen wie Apache immer mit 0:00 angegeben werden. Birgt dies irgendwelche Probleme bzw. habe ich bei der Programmierung oder dem generellen Starten irgendetwas übersehen? Das Skript wird mit fork() in den Hintergrund gelegt und beendet den Elternprozess, gestartet wird es mit einem Bash Skript und start-stop-daemon.

Vielen Dank im voraus.

Gruß,
WinstonWolfe

marce
03.07.06, 11:41
... das "Laufverhalten" von Apache-Prozessen ist ein wenig ein anderes, die werden ja je nach Bedarf getötet und gestartet - dass da keine großartige Prozessorzeit aufkommt sollte klar sein...

baumgartner
03.07.06, 12:06
Das gilt auch für alle anderen Prozesse die vom identd gestartet werden.

marce
03.07.06, 12:25
... nur macht es der Apache ein wenig anders - ausserdem wüsste ich gerade kein System, wo er über den inetd läuft...

baumgartner
03.07.06, 13:16
ich meinte eher, dass das auch für andere Prozesse gelten kann, welche z.B. über den inetd gestartet werden.

WinstonWolfe
03.07.06, 13:53
OK, soweit klar, was den Apache angeht. Welchen Aussagewert hat denn die Prozessorzeit bezogen auf mein Skript? Gibt es irgendwelche Maximalwerte, die es einzuhalten gilt? Das Skript - genauer ein Kindprozess - läuft in einer Endlosschleife und führt jede Minute eine Abfrage der seriellen Schnittstelle durch. Dazwischen idlet es, wodurch keine Prozessorzeit beansprucht wird. Sollte ich in gewissen Abständen den Prozess töten und neu starten oder spielt die Zeit überhaupt keine Rolle?
Danke nochmals.
Gruß,
WinstonWolfe

marce
03.07.06, 13:55
wenn er läuft und sauber programmiert (keine Speicherlecks und so...) ist - lass laufen...

WinstonWolfe
03.07.06, 14:12
OK, danke. Ich werde das mal beobachten. In einer früheren Version hatte ich ein Problem, da ich die serielle Schnittstelle permanent geöffnet hatte und eine Dauerverbindung zur mySQL Datenbank. Irgendwann kam dann garnichts mehr und die Prozessorzeit lief synchron zur Systemzeit... Jetzt lasse ich die Abfragen wie gesagt nur minütlich durchführen und kann zwischendurch alles schließen.