ForumRechner ohne grossen Aufwand remote herunterfahren
Oliver Mayer – Freitag, 18. März 2005 13:56 Uhr

Hallo an alle :)
================

Habe zur Zeit ein Projekt laufen, in dem ein Rechner nach Empfang eines noch undefinierten Signales über Ethernet heruntergefahren werden soll.
Gibt es unter Linux einen Dämon, der beliebige Signale empfangen kann, und diese an ein Programm / Script weiterleiten kann..?

Der Sender (ein Programmierbarer Baustein mit Ethernet-Schnittstelle und Betriebssystem) wird auch von uns programmiert, und sollte möglichst einfach gehalten werden, die Verweindung eines komplizierten Protokolls möchte ich gerne vermeiden..

Hat von euch schon mal einer Erfahrungen mit so einem Projekt gemacht?

Liebe Grüsse, Oliver

5 Antworten
Alexander Hungenberg – Freitag, 18. März 2005 14:46 Uhr

Hi,

also meines erachtens geht das per ssh relativ einfach. Einloggen und “init 0”.

Klaus Wagner – Freitag, 18. März 2005 15:48 Uhr

folgendes ruby-script sollte funktionieren

require “socket”

serversocket = TCPServer.new( ‘localhost’, 9876 )

clientsocket = serversocket.accept
#prüfe Berechtigung
exec(‘/sbin/shutdown -h now’)

In der momentanen Form hat es aber den Nachteil, dass es als root laufen muss.
Ausßerdem muss noch eine Autentifizierun eingebaut werden.

flying_horse – Freitag, 18. März 2005 17:51 Uhr

Ganz einfach: ssh root@ “shutdown -h now”

Mit public-key geht’s dann sogar ohne Passwort. Allerdings sollte dann der Key mit einer Passphrase gesichert sein, was aber mit “keychain” oder ähnlichem keine zu grossen Umstände machen sollte. Damit ist auf jeden Fall die Authentifizierung und die Vertraulichkeit sichergestellt.

Gruss, Klaus

mhe – Freitag, 18. März 2005 18:34 Uhr

Hallo,

mache dich mal mit dem xinetd vertraut. Der kann bei connects auf beliebige Ports beliebige Programme starten.
Beispiele liegen u.U. in /etc/xinetd falls der xinetd installiert ist.
Im einfachsten Fall wird ein shutdown Skript gestartet. Das kann aber dann natürlich jeder triggern…
Der xinetd kann jedoch zumindestens connects auf bestimmte IPs einschränken.
Alles weitergehende wie Authentifizierung etc muss im Skript oder in dem zu startenden Programm
implementiert werden.

Hoffe das hilft.

Eine kleine Erfolgs- oder Misserfolgsmeldungen hier eingestellt wäre nett. Danke.

Oliver Mayer – Dienstag, 22. März 2005 10:07 Uhr

Vielen Dank erst mal an alle für die Hinweise.. Das mit dem Ruby-Script und Xinetd hört sich ganz gut an, .. bin grad am forschen :)

Authentifizierung wird eigentlich nicht benötigt, da das System in einem geschlossenen Netzwerk läuft, und zwischen Rechner und Chip sonst keine anderen Systeme angeschlossen sind.

Die Möglichkeit mit ssh u. telnet besteht, ich möchte jedoch vermeiden, einen terminal-clienten auf dem Chip zu implementieren.

Es soll zum einen ein Signal geben (irgend eines), das meinen Rechner veranlasst herunterzufahren, und noch ein regelmässiges Signal, dass einen Float-Wert überträgt. -> Es geht um einen batteriegetriebenen Server, der über den zu entwickelnden Chip regelmässig über den Akkustand informiert wird, und bei drohendem Stromausfall (z.B. Akku unter 5%) einen shutdown durchführt.

Ich werde die genannten Möglichkeiten in Kürze testen, und dann ein Feedback ins Forum schreiben..

Bis dahin vielen Dank erst mal!

Liebe Grüsse,

Oliver

Oliver Mayer – Montag, 17. Oktober 2005 12:55 Uhr

Ok. Hier kommt die Erfolgs/Misserfolgsmeldung.. :)

Also, das mit Ruby war nicht zu implementieren, da
der Chip mit dem Betriebssystem TOS ausgestattet ist,
und neben der eigentlichen Applikation zu wenig Speicher
zur Verfügung stand, um eine Ruby-Runtime zu installieren.

XInetd wurde vom Administrator des Servers, der heruntegerahren werden muss,
nicht freigegeben..

Also haben wir einfach einen kleinen Dämon(Serverseite) und einen passenden
UDP-Client geschrieben, der das entsprechende Signal zum “shutdown” sendet..

Funktioniert soweit ganz gut, das System läuft seit zwei Monaten autark..

Wenn die Projekt-Seite steht, werd ich mal den Link posten, das ganze wird dann
auch vom “Ministerium für Innovation” gesponsert..

cu,
Oliver