Was tun, wenn das CLI-Tool nicht "returnt"?
Verfasst: Dienstag 16. Mai 2006, 11:10
Hi,
ich hoffe, es kann mir einer helfen.
Ich habe folgendes Problem. Ich baue ein kleines GUI mit Tkinter für ein Commandline-Toole (ja ich weiß, es gibt ein extra Forum dafür, aber hier gehts um das grundlegende Problem).
Ich rufe das Tool + Parameter über "subprocess.Popen" auf. Das funktioniert super und klasse und so weiter, aber eben NUR, solange das Tool keinen Fehler wirft. Es gibt ein Szenario, wo das Tool einfach nicht returnt. Ich muss also auf der Kommandozeile ein "ENTER" drücken, damit es weiter geht.
Den Prozess per Timeout zu killen, ist auch nicht so prickelnd, weil das Tool ansich schon mal eine Weile brauchen kann, um "normale" Anfragen auszuführen. Ein Kill würde mir dadurch einen fehlerfreien Durchlauf versauen.
Mein Problem zusammengefasst:
- Das CLI-Tool returnt nicht immer (liefert also weder STDOUT noch STDERR usw.)
- Wenn das passiert, hängt mein GUI. Ich muss es also abschießen
(ich kann das CLI-Tool zwar per Thread starten, aber spätestens beim Beenden des GUIs hängt sich das auf...)
- Killen per Timeout kommt nicht in Frage
- Schöner Mist
Falls einer eine Idee hat, wäre das klasse!
Danke schon mal für den Aufwand!
Ben
ich hoffe, es kann mir einer helfen.
Ich habe folgendes Problem. Ich baue ein kleines GUI mit Tkinter für ein Commandline-Toole (ja ich weiß, es gibt ein extra Forum dafür, aber hier gehts um das grundlegende Problem).
Ich rufe das Tool + Parameter über "subprocess.Popen" auf. Das funktioniert super und klasse und so weiter, aber eben NUR, solange das Tool keinen Fehler wirft. Es gibt ein Szenario, wo das Tool einfach nicht returnt. Ich muss also auf der Kommandozeile ein "ENTER" drücken, damit es weiter geht.
Den Prozess per Timeout zu killen, ist auch nicht so prickelnd, weil das Tool ansich schon mal eine Weile brauchen kann, um "normale" Anfragen auszuführen. Ein Kill würde mir dadurch einen fehlerfreien Durchlauf versauen.
Mein Problem zusammengefasst:
- Das CLI-Tool returnt nicht immer (liefert also weder STDOUT noch STDERR usw.)
- Wenn das passiert, hängt mein GUI. Ich muss es also abschießen
(ich kann das CLI-Tool zwar per Thread starten, aber spätestens beim Beenden des GUIs hängt sich das auf...)
- Killen per Timeout kommt nicht in Frage
- Schöner Mist
Falls einer eine Idee hat, wäre das klasse!
Danke schon mal für den Aufwand!
Ben