NEWS
Linux PC in Bereitschaft versetzen exec
-
Morgen Jungs,
Ich würde gerne meinen Linux PC über Blockly in den Ruhezustand setzen..
ioBroker läuft auf der Syno im Docker, in der Konsole klappt mein vorhaben schonmal wunderbarssh sigi@192.168.54.48 sudo /usr/sbin/pm-suspend
Der Remote Rechner geht in die Bereitschaft. Nur über Blockly und exec will es noch nicht laufen
Ich hab mir ein relativ einfaches Blockly gebaut, wird der Datenpunkt auf wahr geswitcht soll der Rechner in die Bereitschaft geschickt werden..
"Erlaube Kommando exec" im JS Adapter habe ich gesetzt.
Hier mal ein Screenshot meines BlocklysLaut Log wird der Befehl auch erfolgreich gesendet...
Hat zu meinem Problem jemand ne Idee? -
@UncleB damit du das ergebnis/fehler siehst kannst du folgendes machen:
erzeuge eine variable die "result" heißt - wähle im exec-blockly mit ereignissen aus und setze direkt unter dem exec-blockly ein debug-blockly, die die variable result ausgibt - dann solltes du die antwort deines servers auf den befehl sehen
hast du schon mal ein sudo vor ssh probiert ?
-
sudo erfordert die Eingabe des Passwortes für root rechte. Das geht aber so nicht mit exec, da die möglichkeit dazu fehlt.
Am einfachsten wäre es die sudo Konfiguration für den Benutzer ioBroker so an zu passen das er den Befehl ohne Passwort eingabe ausführen kann.
Hier mal ein Beispiel für ein Bash Script.
-
da hat der jey-cee natürlich recht - hier ist noch ein thread, wo das behandelt wurde
https://forum.iobroker.net/post/267424 -
Danke fpr den Tipp live-in-sky, und sudo ist ja miteingebaut wie man im Screenshot sehen kann.
@Jey-Cee habe den Benutzer sudo ohne PW für die Befehle erlaubt.%sigi ALL=NOPASSWD: /sbin/shutdown, /sbin/reboot, /usr/sbin/pm-suspend, /usr/sbin/pm-hibernate
Und direkt aus der Konsole des Systems auf dem ioBroker läuft klappt das ja auch wunderbar..
Nur nicht über exec und Blockly..Aber ich sehe mir mal die Bash Methode an
-
@UncleB sagte in Linux PC in Bereitschaft versetzen exec:
Nur nicht über exec und Blockly..
Das liegt sicher daran das du NICHT den Benutzer iobroker eingetragen hast.
EDIT: Nicht gecheckt das es um Remote geht, also vergiss es.
-
@UncleB Wie loggt sich der User sigi auf dem entfernten Rechner ein?
Anhand des Befehls würde ich schätzen mit einem Zertifikat. Da besteht aber das Problem, dass ioBroker im Kontext des Usersiobroker
läuft, in welchem das Zertifikat nicht zugreifbar ist.
Wenn du auf der Konsole bist, dürftest du alsroot
angemeldet sein?Wenn dem so ist:
- "Logge" dich als ioBroker ein:
sudo su -u iobroker -s /bin/bash
- Installiere dort das Zertifikat für den User
sigi
- "Logge" dich als ioBroker ein: