Linux: laufende Ausgabe von /var/log/messages in Fenster

Fragen zu Tkinter.
Antworten
egerlach
User
Beiträge: 41
Registriert: Samstag 14. März 2009, 21:32

Hallo,
ich habe hier python unter Linux und will nach Versand eines Fax mit einem TKinter-GUI nun in einem Fenster die laufende Ausgabe der Protokolldatei /var/log/messages anzeigen. Wer sich mit Linux nicht so ganz auskennt: in /var/log/messages werden fortlaufend Protokollnachrichten von vielen der laufenden Prozesse geschrieben. In einem Terminal erhält man die Ausgabe mit

Code: Alles auswählen

# tail -f /var/log/messages
Kann ich die fortlaufende Ausgabe in ein TKinter-Fenster anzeigen?


Bitte nicht missverstehen: wie ich einen Linux-Befehl ansetze weiss ich:

Code: Alles auswählen

 
        [...]
        cmd = "sendfax -n -d 11111111 " + dokuliste
        #print cmd
        p = subprocess.Popen(cmd, shell=True, #bufsize=1,
                             stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        p.stdin.close()
Wie ich danacht die stout-Ausgabe oder stderr errhalte weiss ich auch, z.B.:

Code: Alles auswählen

Nachrichten=p.stdout.read()
Wie aber zeige ich an was tail -f leistet?

Gruss
Eckard
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Naja, du hast doch den Text, jetzt musst du ihn nur noch in geeigneter Form anzeigen lassen.

Eine Text-Widget wäre dafür wohl am angebrachtesten und das hatten wir erst kürzlich,
sieh mal hier http://www.python-forum.de/viewtopic.ph ... 2&start=15

Zudem, musst du bei fortlaufender Ausgabe, das Text-Widget immer wieder mit dem neuen Text füttern, ist aber nicht sonderlich schwer.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
egerlach
User
Beiträge: 41
Registriert: Samstag 14. März 2009, 21:32

den Inhalt immer wieder auszulesen um somit das feature "fortlaufend" zu realisieren .. okay. Exakt tail -f realisieren läßt sich damit aber nur mit größerem Aufwand: erst nur die letzten 10 Zeilen anzeigen, dann immer mehr, die letzten 11, die letzten 12, ... hmmm ... mir zu kompliziert.
Ich werde wohl einfach ein xterm starten und lasse da einfach tail -f laufen ... . Unter WinClient läuft sowieso Xming, dort wird das xterm einfach gestartet,

Gruss
Eckard
Antworten