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.
Antworten
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
acidk
User
Beiträge: 75
Registriert: Samstag 6. Januar 2007, 18:54
Wohnort: Braunschweig

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
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten