SSH-Verbindung (ohne Terminal) [maybe Off-Topic]

snowyrain

Neuer User
Mitglied seit
31 Jul 2006
Beiträge
125
Punkte für Reaktionen
0
Punkte
16
Hallo,

ich habe mir einen kleinen Deamon ( in C )geschrieben der auf der /dev/ttyUSB0 auf einkommende Daten warten und ein Datenpaket mittels system() an ein Shellscript übergibt. Das Ganze läuft auch (fast) super, z.B. über einen Tastendruck an einem ATmega wird ein String an die Fritzbox gesendet und ein ether-wake Aufruf gestartet und mein VDR wacht auf.

Über eine zweite Taste soll der VDR-Dienst auf dem VDR neugestartet werden. Hierfür nutze ich SSH. Das läuft jedoch nur wenn ich den Dienst also "/etc/sserial start" per Hand aufrufe und die SSH-Verbindung zur Fritzbox offen halte. Sobald ich das SSH-Fenster (Host->Fritz.box) schließe kann der Deamon nicht mehr die SSH-Verbindung ausführen. (Wenn ich den Dienst automatisch starten lasse, gibt es das gleiche Problem)
Der ether-wake aufruf läuft aber trotzdem.

Ich habe das Gefühl, dass SSH ein Terminal braucht. Ich habe schon screen mit auf die Box genommen und auch ein paar ssh-Parameter versucht. Leider kriege ich es nicht zum Laufen.

Vielleicht weiß einer von Euch Rat.

Gruß

Snowyrain

P.S.: Der SSH Aufruf lautet:
ssh -i /tmp/flash/rsa_host_key [email protected] 'printf "startvdr" | at now && exit'
 
Wenn Du schon screen verwendest, dann hast Du auf jeden Fall ein Terminal.

Normalerweise sollte SSH auch ohne Terminal funktionieren, wobei das nicht heißt, daß auch das aufgerufenen Programm ohne Terminal funktioniert.

Hast Du schon ausprobiert, ob Fehlermeldungen kommen?
 
Hallo,

die rc.custum erzeugt ein script mit dem Inhalt:
Code:
#!/bin/sh
ssh -i /tmp/flash/rsa_host_key [email protected] 'printf "startvdr" | at now && exit'
echo "should restart" >> /tmp/sserial/debug.txt

Der Befehl der dieses Script aufruft lautet:
screen /tmp/sserial/restartvdr >> /tmp/sserial/incdebug.txt 2>&1

In der Datei /tmp/sserial/incdebug.txt steht dann: "Must be connected to a terminal." Die Fehlermeldung scheint jedoch von screen zu kommen.

Gruß

Snowyrain
 
Hallo,

ich habe mir einen kleinen Deamon ( in C )geschrieben der auf der /dev/ttyUSB0 auf einkommende Daten warten und ein Datenpaket mittels system() an ein Shellscript übergibt. Das Ganze läuft auch (fast) super, z.B. über einen Tastendruck an einem ATmega wird ein String an die Fritzbox gesendet und ein ether-wake Aufruf gestartet und mein VDR wacht auf.
Hallo, das ist ziemlich cool, finde ich. Könntest Du Deinen Code evtl. hier veröffentlichen?
Ich z.B. würde gerne versuchen, mit geeigneten AT-Kommandos meine Heizung dazu zu bewegen, sämtliche Messdaten auf Befehl an die Fritzbox zu senden. Die Heizung ist via RS232-USB Adapter an meiner 7170 angeschlossen. Mit einer passenden SW (läuft leider nur unter Windows XP) kann ich damit auch alle Daten auslesen. Aber wenn das direkt mit der Fritzbox ginge, wäre das super.
(auch meinerseits sorry, dass das alles hier etwas OT wurde)
 
Hallo,

ich bastle schon länger an einer ähnlichen Lösung. Ich möchte Funkschalter bedienen und Temperatursensoren abfragen können. Bei läuft es ganz gut. Du findest alles (sourcen, aber auch einen patch zum integrieren in freetz) unter http://snowyrainbilder1.netfirms.com/demopackage/.

Ich kann über eine Html-Seite die Sensoren an zwei Fritzboxen über eine Web-Seite abfragen. Zudem habe ich jetzt auch mehrere Taster an der Fritzbox. So kann ich z.B. meinen Server aufwecken oder auch schlafen legen wenn ich weggehe.

Unter der Seite ist nur der Serial-Teil. Wenn Du interesse an dem ATmega-Code hast, kann ich den auch online stellen.

Ich würde mich riesig freuen, wenn Du es testen könntest.

Gruß

Snowyrain
 

Statistik des Forums

Themen
246,146
Beiträge
2,246,880
Mitglieder
373,654
Neuestes Mitglied
hstoff
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.