NEWS
PC herunterfahren wird via iobroker nicht ausgeführt, über die shell aber ja
-
Moin zusammen,
ich steige einigermaßen frisch in iobroker ein und stolpere vermutlich gerade über eine Linux Berechtigung. Mein iobroker läuft auf einem RPI, verwendet habe ich ein Image aus dem Downloadbereich.
Ich bin aktuell dabei, für alle relevanten PCs Wake on Lan einzurichten und auch das automatische Herunterfahren über net rpc shutdown zu lösen. Das Wake on Lan funktioniert einwandfrei, der Shutdown jedoch nicht.
Ich verwende dafür in einem Javascript folgenden Aufruf:
exec('net rpc shutdown -s -f -I IP –U xxx%yyy');
Aktiviere ich meinen Trigger für das Herunterfahren, werden zwar meine Logeintrage vor und hinter dem exec Befehl ausgeführt, aber nicht das exec (oder das net rpc shutdown) - zumindest fährt der Rechner nicht herunter.
Kopiere ich````
net rpc shutdown -s -f -I IP –U xxx%yyyDeutet für mich erstmal darauf hin, dass sowohl auf dem PI als auch in Windows alles grundsätzlich richtig eingerichtet ist. Im Javascript Adapter habe ich exec erlaubt, "net" NPM hinzufügt und auch den Adapter neugestartet.  Kann doch eigentlich nur noch an zwei Sachen liegen: a) ich habe irgendwas in iobroker vergessen einzurichten b) irgendwo fehlt irgendein Recht Hat jemand eine zündende Idee, was das Problem sein könnte? Kann ich irgendwie herausbekommen, ob der Befehl überhaupt abgesendet worden ist? Danke & schönen Gruß Dennis
-
apt-get install samba-common-bin
auch installiert ??
-
Jupp, ist installiert. Über die Shell funktioniert der Befehl ja auch einwandfrei, nur über iobroker nicht.
-
probier mal mit
exec('sudo net rpc shutdown -s -f -I IP –U xxx%yyy');
wenn nicht
dann musst du den pfad mit angeben zu 'net' Befehl
exec('sudo /usr/bin/net rpc shutdown -s -f -I IP –U xxx%yyy');
-
Leider geht es damit auch nicht. Weder mit dem vorangestellten Pfad noch mit zusätzlichem sudo oder auch nur mit sudo und net ohne Pfad. Egal welche Variante ich wähle, es passiert nichts. Das exec selbst funktioniert aber. Ich habe mal probehalber 'free -m' eingetragen, da bekomme ich eine Antwort im Callback.
Gibt es irgendeine Möglichkeit, eine Ausgabe von dem Befehl zu erzwingen? Ich wäre ja schon froh über eine Fehlermeldung, aber ich bekomme keinerlei Rückmeldung von dem Befehl. Weder positiv noch negativ.
exec('/usr/bin/net rpc shutdown -s -f -I IP –U xxx%yyy',function(error, data) { if (error) { log(error,"error"); } else { log(data); } });
Was mir noch eingefallen ist: Kann es sein, dass ich für den Aufruf über iobroker noch irgendwas benötige? Ich habe bisher nur das samba-common-bin mit allen Abhängigkeiten installiert.