FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: Pimp.my.PC am 28 März 2016, 01:44:43

Titel: WOL - [UPDATE] FHEM bleibt nach SSH-Befehl hängen
Beitrag von: Pimp.my.PC am 28 März 2016, 01:44:43
Hallo,

ich möchte gerne per WOL-Modul via SSH einen entfernten Linux-Rechner herunterfahren.
Hier mein Define:
define WOL_Shutdown WOL f4:f2:6d:56:d7:96 192.168.127.5 EW 5
attr WOL_Shutdown shutdownCmd { system("ssh fhem\@192.168.127.5 sudo systemctl poweroff") };;{Log 1, "Shutdown: alarm" }
attr WOL_Shutdown sysCmd /usr/sbin/etherwake


Leider funktioniert es nicht, da auf dem entfernten Rechner SSH unter Port 45 anstatt Port 22 läuft.

Kann mir bitte jemand sagen, wie ich einen alternativen Port angebe? IP-ADRESSE:PORT funktioniert leider nicht.

LG
Sebastian
Titel: Antw:WOL - SSH-Port ändern
Beitrag von: Reinerlein am 28 März 2016, 01:53:06
Hi Sebastian,

bei ssh muss man den Port als Parameter "-p" angeben.
Versuch mal

attr WOL_Shutdown shutdownCmd { system("ssh -p 45 fhem\@192.168.127.5 sudo systemctl poweroff") };;{Log 1, "Shutdown: alarm" }


Grüße
Reiner
Titel: Antw:WOL - SSH-Port ändern
Beitrag von: Pimp.my.PC am 28 März 2016, 15:11:19
Hat funktioniert, vielen Dank! :)

Allerding habe ich nun das Problem, dass er den Poweroff-Befehl absetzt, der entfernte Rechner auch herunterfährt, FHEM dann allerding komplett hängen bleibt.
HTOP auf der FHEM-Maschine zeigt auch dass Pearl immernoch den SSH-Befehl ausführt...

1310 fhem       20   0 24628 21464  1948 S  0.0  2.2 13h17:49 ├─ perl fhem.pl fhem.cfg
17818 fhem      20   0  5740  2260  1776 S  0.0  0.2  0:00.73 │  └─ ssh -p 45 fhem@192.168.127.5 sudo systemctl poweroff


Was kann ich dagegen tun?

LG
Sebastian
Titel: Antw:WOL - [UPDATE] FHEM bleibt nach SSH-Befehl hängen
Beitrag von: Reinerlein am 28 März 2016, 16:19:58
Hi Sebastian,

vielleicht kannst du einfach einen zweiten Befehl absetzen, der die Verbindung wieder trennt.

Geht es denn mit

attr WOL_Shutdown shutdownCmd { system("ssh -p 45 fhem\@192.168.127.5 sudo systemctl poweroff && exit") };;{Log 1, "Shutdown: alarm" }
?

Grüße
Reinerlein
Titel: Antw:WOL - [UPDATE] FHEM bleibt nach SSH-Befehl hängen
Beitrag von: Pimp.my.PC am 28 März 2016, 17:34:43
Nein, das klappt leider nicht, er bleibt beim Shutdown-Befehl hängen.
Erwartet er da irgendeine Antwort vom entfernten Rechner, die nicht kommt?

EDIT: Wenn ich den Befehl
ssh -p 45 fhem\@192.168.127.5 sudo poweroff
direkt über die Shell am FHEM-Rechner mit den User fhem ausführe, bleibt auch da die shell hängen.

LG
Sebastian
Titel: Antw:WOL - [UPDATE] FHEM bleibt nach SSH-Befehl hängen
Beitrag von: Reinerlein am 28 März 2016, 17:53:23
Hi Sebastian,

ich fürchte, dass er die beiden &-Zeichen nicht an den entfernten Rechner überträgt, sondern für den lokalen ssh-Befehl verwendet.
Ob eine Eingabe erwartet wird, kannst du ja einfach testen, indem du den ssh-Befehl selber aufrufst (ohne das shutdown-Kommando), und dort in der Shell (dann ja auf dem entfernten Rechner) das shutdown absetzt. Im Normalfall braucht er nur kurz, und kommt dann zurück auf die shell, wo kurz danach dann alles beendet wird.
Ich denke, dass dieses Prozessende der entfernten Shell nicht richtig bei dir ankommt, deswegen ja die Idee mit dem exit... sozusagen vor dem Tod der entfernten Shell schnell selber korrekt beenden...

Versuch es mal mit maskieren der entfernt auszuführenden Befehlszeile:

attr WOL_Shutdown shutdownCmd { system("ssh -p 45 fhem\@192.168.127.5 'sudo systemctl poweroff && exit'") };;{Log 1, "Shutdown: alarm" }


Grüße
Reinerlein
Titel: Antw:WOL - [UPDATE] FHEM bleibt nach SSH-Befehl hängen
Beitrag von: Pimp.my.PC am 28 März 2016, 18:06:33
Leider funktioniert das auch nicht. Er bleibt immer sofort hängen.
Andere Befehle kann ich ausführen:
ssh -p 45 fhem@192.168.127.5 sudo nano Test.txt
funktioniert einwandfrei. (Diesmal alles direkt aus der Schell des FHEM-Rechners getestet)
Titel: Antw:WOL - [UPDATE] FHEM bleibt nach SSH-Befehl hängen
Beitrag von: Pimp.my.PC am 28 März 2016, 18:18:25
So,

ssh -p 45 fhem@192.168.127.5 'sudo shutdown -P 2' löst das Problem nun. :)

LG
Sebastian