Forum: PC-Programmierung Linux telnetd als Programminterface


von Braying Donkey (Gast)


Lesenswert?

Moin,

ich hab ein Embedded Linux Gerät in einem Roboter im Einsatz. Mein 
Programm (UI mit ncurses) darauf wird automatisch gestartet. Wenn ich 
die Ausgabe des Programms sehen will, muss ich es abbrechen und im 
Terminal neu starten.

Gibt es eine Möglichkeit, den telnetd oder vergleichbares so zu 
benutzen, dass er das UI standartmäßig z. B. auf Port 3000 zur Verfügung 
stellt? Die "normale" telnetd-Instanz mit Bash auf Port 23 soll dabei 
unangetastet bleiben.

von Peter II (Gast)


Lesenswert?

so einfach wird das nicht gehen. Was ist wenn das "Telnet"-Fenster eine 
andere Größe/Auflösung wie die lokale Konsole hat?

Mache doch ein Webinterface.

von Braying Donkey (Gast)


Lesenswert?

Peter II schrieb:
> Was ist wenn das "Telnet"-Fenster eine
> andere Größe/Auflösung wie die lokale Konsole hat

Den Teil machen Telnet-Client, telnetd und ncurses unter sich aus, meine 
ich. Evtuell müsste ich ein paar Umgebungsvariablen setzen?
Normalerweise benutze ich die Schnittstelle auch über Telnet, nur dass 
ich mich erstmal am System anmelde und dann das Programm aus der KOnsole 
starte...

von Peter II (Gast)


Lesenswert?

Braying Donkey schrieb:
> Den Teil machen Telnet-Client, telnetd und ncurses unter sich aus, meine
> ich.

ja, aber wenn es 2 Displays gibt funktioniert das kaum noch.

Du kannst du das Programm im Screen laufen lassen und dich damit 
verbinden. Geht dann aber immer nur für eine Verbindung

von Gerd E. (robberknight)


Lesenswert?

Schau Dir mal die Programme screen oder tmux an und starte Dein Programm 
darin.

Dann kannst Du Dich jederzeit damit verbinden, trennen und wieder 
verbinden.

von Linux-Frickler (Gast)


Lesenswert?

Um die Antwort zusammenzufassen:

im "rc.local" o.Ä. startest du dein ncurses-Programm mit
"screen -dmS skynet /bin/skynet.exe"

Wenn du per Telnet ranwillst:
screen -r syknet

Wenn eine zweite Telnet-Verbindung ranwill
screen -rx skynet (kann lesen und schreiben, aber die Windowsize nicht 
ändern)

Wenn eine weitere Verbindung ranwill, aber exklusiv:
screen -rd skynet
(das schmeißt die anderen dann raus)

Wenn das Programm auch auf der Konsole sichtbar sein soll:
den initialen Screen-Aufruf nicht "detachen", also ohne "-dm"

Wenn du was anderes willst/brauchst: Geht. "man screen".

von Braying Donkey (Gast)


Lesenswert?

Danke sehr, habe es gerade getestet und es klappt!

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.