Ich wollte das Modul nutzen, um auf meinem ESXi ein Shutdown-Script auszuführen. Funktioniert auch soweit, allerdings benötigt das Script viel Zeit (bei meinem Test mehr als 12 Minuten).
Während dieser Zeit passiert aber nichts anderes in FHEM, was dazu geführt hat, dass meine Watchdog-Datei nicht upgedatet und somit FHEM mittendrin neu gestartet wurde. Auch mein HMLGW hat sich beschwert (HMLGW:keepAlive KeepAlive sent 624.708s too late).
Anscheinend blockiert das Modul alles andere.
Ein list, wie ich das Modul angelegt habe:
Internals:
DEF BC:5F:F4:E2:A1:6F 192.168.0.202 EW
IP 192.168.0.202
MAC BC:5F:F4:E2:A1:6F
MODE EW
NAME ESXi_Shutdown
NR 880
REPEAT 000
STATE on
TYPE WOL
Readings:
2017-04-10 22:11:26 active off
2017-04-10 22:14:32 isRunning true
2017-04-10 21:43:22 packet_via_EW none
2017-04-10 21:43:22 packet_via_UDP none
2017-04-10 22:14:32 state on
Timer:
Esxi_shutdown_ping:
HASH ESXi_Shutdown
MODIFIER ping
NAME ESXi_Shutdown_ping
Helper:
Attributes:
shutdownCmd { system("ssh root\@192.168.0.202 sh /vmfs/volumes/VM_Store_4/Patches/esxidown.sh") };;{Log 1, "Shutdown: alarm" }
Gibt es hierzu Lösungen? Welches Modul lässt Shellbefehle nicht-blockierend zu?
LG
Holger
Hallo Holger,
ändere Deinen Befehl bitte in shutdownCmd "ssh root@192.168.0.202 'sh /vmfs/volumes/VM_Store_4/Patches/esxidown.sh'";;{Log 1, "Shutdown: alarm" }
oder
shutdownCmd { system("ssh root\@192.168.0.202 sh /vmfs/volumes/VM_Store_4/Patches/esxidown.sh&") };;{Log 1, "Shutdown: alarm" }
Dann läuft er im Hintergrund.
Also nicht WOL blockiert sondern Dein Befehl. ;)
Kein Modul verhindert dies, um nicht blockierende Shell Befehle musst Du Dich kümmern. Aber richtig geschrieben kümmert sich FHEM (Variante 1) -> https://fhem.de/commandref_DE.html#command
Gruß Otto
Hallo Otto,
ich nehme alles zurück und behaupte das Gegenteil! 98_WOL läuft super ;D
Was so ein kleines Zeichen doch ausmacht. Ich danke dir.
LG
Holger
Zitat"ssh root@192.168.0.202 'sh /vmfs/volumes/VM_Store_4/Patches/esxidown.sh'";;{Log 1, "Shutdown: alarm" }
Will nicht die gute Laune stoeren, aber ein FHEM "..." Befehl laeuft prinzipiell im Hintergrund, und das schon "seit immer",
damit man in einem aus FHEM gestarteten Shellscript FHEM-Befehle absetzen kann. Laeuft bei mir seit 10 Jahren problemlos.
Habs gerade mit einem aus dem FHEM-telnet-Verbindung abgesetzten "ssh myserver sleep 100" getestet: der FHEM-Prompt kam sofort wieder,
und auf myserver schlief ein sleep froehlich vor sich hin.
Sag ich doch 8) hab ich von Dir gelernt.
Aber irgendwie scheuen sich alle immer den Shell Befehl einfach in " " abzusetzen. Dem system Befehl wird offenbar mehr vertraut. ;)
Gruß Otto
Zitat von: Otto123 am 11 April 2017, 13:49:39
Aber irgendwie scheuen sich alle immer den Shell Befehl einfach in " " abzusetzen. Dem system Befehl wird offenbar mehr vertraut. ;)
Warum auch immer. Persönlich finde ich ja "" auch viel einfacher. Es sei denn ich mache komplexe Dinge damit, dann nehme ich gerne Blocking.pm