Wie Ausgabe automatisch auf Schirm zeigen?

  • Moin!

    ich habe hier ein Python-Schript, das per Terminal und dem "Vorspann" ./<Name> aufgerufen wird. Funktioniert sehr gut, die Ausgabe erscheint im Terminal-Fenster, auf dem Bildschirm vom Pi oder auch per ssh.

    Nun wird das gleiche Script aber auch alle 5 Minuten per Zeitsteuerung aufgerufen, und ich bekomme KEINE Ausgabe auf den Bildschirm, sondern in eine Datei gleiches Namens mit Extender .log. Wie kann ich das abstellen?

    Die relevante Zeile im Script:

    Code
    # print temperature  
     print(time.strftime("%d.%m.%Y %H.%M") +"; "+ str(w1_slave) + " ; " + Bezeichner[str(w1_slave)] + " %5.1f °C" % temperature )

    Falls es relevant ist: Raspian, aktuelle Version, das BS startet in die GUI, dort ist ein Terminalfenster offen, wo die Ausgabe erscheinen soll.

    Thomas

  • Was du beschreibst ist nicht so einfach möglich.
    Was du beschreibst willst du nicht haben.
    Warum?
    Weil damit das Arbeiten mit dem Pi (dessen Konsole) unmöglich wird, wie willst du etwas tun, wenn die ganze Zeit Informationen dort hingeschrieben werden?

    Was du in Wirklichkeit willst, es bloß nicht weißt ist das:
    Du willst ein "less +F programmname.log" machen, das zeigt dir dann den aktuellen Inhalt der log-datei an und aktualisiert das auch fortlaufend! Natürlich kannst du dir einen shortcut anlegen der ein Terminal mit diesem Befehl startet oder soetwas. So siehst du die Informationen ohne Aufwand und aktuell (das ist sicherlich das was dein ziel ist?) und die Konsole ist weiterhin benutzbar. (Beenden des Aktualisieren mit Ctrl-C/Strg+C , schließen von less (dem Anzeigeprogramm) mit q, aber erst möglich nach Beenden des Aktualisierens)
    Es gibt auch noch eine Reihe anderer Möglichkeiten das zu erreichen, z.B. tail -f, was immer die letzten X Zeilen einer Datei anzeigt. Das -f macht das ganze Fortlaufend, wie das +F bei less.

    Und um gleich Irritationen zu vermeiden: Nein ich habe mich nicht vertippt, es ist tatsächlich less PLUS F, das + heißt, fühle den Befehl immer aus, wenn die Datei sich verändert, das F ist die Anzeige dazu oder so ("man less" erzählt viel dazu... zu viel^^)

  • Eine weitere Idee hatte ich gerade noch... Du kannst auch deine ~/.bashrc so verändern, dass deine Prompt immer die aktuelle Temperatur anzeigt. Das ist aber komplexer...
    Wenn du doch auf jeder Konsole immer diese Ausgabe haben möchtest, ist die bashrc auch dein Freund!


  • Weil damit das Arbeiten mit dem Pi (dessen Konsole) unmöglich wird, wie willst du etwas tun, wenn die ganze Zeit Informationen dort hingeschrieben werden?

    Wieso, ich kann doch ein 2. Konsolenfenster aufmachen...

    Was du in Wirklichkeit willst, es bloß nicht weißt ist das:
    Du willst ein "less +F programmname.log" machen, das zeigt dir dann den aktuellen Inhalt der log-datei an und aktualisiert das auch fortlaufend! Natürlich kannst du dir einen shortcut anlegen der ein Terminal mit diesem Befehl startet oder soetwas. So siehst du die Informationen ohne Aufwand und aktuell (das ist sicherlich das was dein ziel ist?) und die Konsole ist weiterhin benutzbar. (Beenden des Aktualisieren mit Ctrl-C/Strg+C , schließen von less (dem Anzeigeprogramm) mit q, aber erst möglich nach Beenden des Aktualisierens)
    Es gibt auch noch eine Reihe anderer Möglichkeiten das zu erreichen, z.B. tail -f, was immer die letzten X Zeilen einer Datei anzeigt. Das -f macht das ganze Fortlaufend, wie das +F bei less.

    Vielen Dank, das ist wirklich einfach und effektiv und hilf (bis FEHM dann irgendwann mal läuft).

    Thomas

  • Wieso, ich kann doch ein 2. Konsolenfenster aufmachen...

    Eben nicht, wenn du das ins Terminal reinschreibst, wäre das ja überall, auch im 2. Terminal. Aber wenn dir meine Lösung zusagt, ist das ja auch gelöst.

    Was mir noch einfiel ist, dass du in der bashrc dein Programm im Hintergrund starten kannst (mit & hintendran), mit einem Parameter, der nur dann etwas ausgibt, wenn eine Grenze überschritten wird. Dann bekommst du in jedem Terminal mit, wenn es kritisch wird. Dann solltest du aber auch etwas basteln, dass es insgesamt nur einmal gestartet wird... nicht einfach.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!