[Python-de] externe Programme

Achim Domma (ProCoders) domma at procoders.net
Thu May 1 15:51:42 EDT 2003


Hi Mike,

> Wie kann man den wget Prozess so starten das Python diesen Prozess ca
> nach 4 Sekunden "abwürgen" kann?

'abwürgen' von außen ist fast immer ein Problem und unsauber, vor allem wenn
du OS unabhängig bleiben willst. Wenn irgendwie möglich, würde ich also
zuerst versuchen, ob du das Problem nicht irgendwie auf der Ebene von wget
lösen kannst. Sollte das aber unmöglich sein, ...

> Ich habe es bisher mit os.system(Befehl zum wget Start) versucht, ok das
> ist die synchrone Variante, mit os.fork oder einer anderen
> asynchronen Variante bin ich bisher nicht vertraut.

... mußt du dir wohl die Funktionen zum Thema 'Prozess Management' im Modul
os anschauen. Mit spawnxxx kannst du Prozesse starten und kommst ihre PID.
Mit der kannst du dann auf ihre Beendigung warten, oder sie irgendwann
abschießen. Allerdings kannst du beim Warten soweit ich weiß, kein Timeout
angeben. D.h. du müßtest mit Threads arbeiten, wobei ein Thread das externe
Programm startet und dein Hauptprogramm diesen Thread überwacht. Aber auch
das zieht Probleme nach sich. Deshalb auch der Hinweis das Problem besser
über wget zu lösen.

Sollte jemand wirklich eine elegante Lösung für dein Problem finden, ohne
das Verhälten von wget zu ändern, dann wäre ich auch sehr gespannt darauf!
;-)

Gruß,
Achim





More information about the Python-de mailing list