Hallo zusammen, ich habe eine Python application geschrieben, diese wird beim starten meines Raspi als Service gestartet. Mein Problem ist nun folgendes. Dieses Programm soll auf die aktuelle Console zugreifen und die Daten auf der Console ausgeben. Da ich nicht genau weiß wonach ich googlen soll, wollte ich mal hier im Forum nachfragen. Wie kann ich mein Problem lösen?
du könntest die Daten in eine Logdatei schreiben und von der Console aus mit tail die Datei anzeigen
Die aktuelle Console ist /dev/console. Gerne wird die Log-Ausgabe von Hintergrundprozessen aber auf eine bestimmte Console ausgegeben, z.B. /dev/tty7 (die 7. Console), damit die Ausgaben nicht die Arbeit auf der aktuellen Console ständig behindern.
Da ich nicht genau weiss, was du vorhast, versuche ich mal möglichst viele use-cases abzudecken. Wenn du wirklich nur auf die aktuelle Konsole schreiben willst, schaue dir /dev/console, /dev/tty0 an. Vermutlich willst du /dev/console. Das ist die selbe, auf der der Kernel manchmal nachrichten auf die Konsole raus schreibt. Sofern man das nicht auf eine Serielle Schnittelle oder so umleitet, ist das in der regel das selbe wie /dev/tty0. /dev/tty0 ist immer das das momentan ausgewählte /dev/ttyX. Die und die vtX sind wiederum ist in der regel von fbcon, und werden davon über die Framebuffer auf dem Bildschirm angezeigt. In deinem Programm kannst du übrigens auch standard input/output/error zur Laufzeit auf ein tty umleiten. Die filedeskriptoren für in/out/err sind 0/1/2, einfach tty öffnen und dup2(ttyfd, 0), usw. Oder in python vermutlich "sys.stdout = open('/dev/console', 'rw')" oder so. Einige hier womöglich nützliche Tools sind: - chvt - auf ttyX anzeigen. - con2fbmap - zuordnung von ttyX und fbX ändern. - openvt - Kommando auf erstem ungenutztem tty anzeigen. - stty - Terminalsettings anpassen/auslesen Prozesse, die immer auf einem bestimmten tty laufen sollen, kann man in sysV kompatiblen Systemen /etc/inittab eintragen. Bei systemd hingegen gibt es dafür wie immer units, schaue dir getty@.service an. Schau dir generell mal getty, agetty und co. an, falls du sowas vor hast.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.