Unterbrechen einer Endlosschleife nach einer Zeit X

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 28. Mai 2008, 08:41

Uh, tatsächlich :oops:

Aber hey, ich bin unschuldig, das schiebe ich zu 100% auf Prüfungsstress :D Man, keine Ahnung wie ich das übersehen habe. D'oh!
My god, it's full of CARs! | Leonidasvoice vs Modvoice
acidk
User
Beiträge: 75
Registriert: Samstag 6. Januar 2007, 18:54
Wohnort: Braunschweig

Beitragvon acidk » Donnerstag 5. Juni 2008, 14:13

okay -- ich glaub ich hab s - Lösung ist zwar nicht toll, funktioniert aber:

Code: Alles auswählen

import os
import time
from time import time

actual_process_id = os.getpid()
print actual_process_id, "ID of current process"    # id of started process!
print "\n"

t0 = time()            
delta = 100
counter = 0

while True:
   actual_time = time()
   counter = counter+1
   print counter
   print actual_time - t0, "Zeit"
         
   if  (actual_time-t0) > delta:
      print "killing process "
      os.kill(actual_process_id, 15)


Ich hoffe nur, dass ich es auf mein Problem anwenden kann - in diesem Falle bin ich ja immerhin darauf angewiesen, dass meine Schleife durchläuft.

Wie also verfahren, wenn sich das Programm an einer Stelle einfach aufhängt, die Zeit nicht mehr heruntergezählt wird? Eine zweite (Sub)Shell öffnen und einen Watchdog parallel dazu programmieren der die Zeit korrekt misst?

Kann man sich in python die Zeit ausgeben lassen, wie lange ein Prozess mit der id x =os.getpid() schon läuft?

Mit os.system(top) hätte man so etwas schon fast an der Hand...
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 5. Juni 2008, 14:26

Würde aber in der while Schleife ein time.sleep() einbauen ;) Vielleicht mit 0.1 oder höher...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]