Service soll im aktiven Terminal schreiben

Gast #5833820
Lesenswert?
• ▲
▼
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?
Gast #5833838
Lesenswert?
• ▲
▼
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.
Gast #5833868
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.