Forum: PC-Programmierung Service soll im aktiven Terminal schreiben


von Linux (Gast)


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?

von Besser Anonym (Gast)


Lesenswert?

du könntest die Daten in eine Logdatei schreiben und von der Console aus 
mit tail die Datei anzeigen

von foobar (Gast)


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.

von DPA (Gast)


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.

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
Noch kein Account? Hier anmelden.