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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren