NEWS
Shutdown remote linux raspi
-
Ich versuche einen remoten raspi über ssh abzuschalten, und zwar mit folgendem Script:
on({id: "0_userdata.0.schalter.OpenMediaVaultEin"/OpenMediaVaultEin/, change: "ne"}, async function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("0_userdata.0.schalter.OpenMediaVaultEin").val) {
console.debug("NAS RaspiOpenMediaVault eingeschalten!");
setState("shelly.0.SHSW-1#8CAAB50558E3#1.Relay0.Switch"/[object Object]/, true);
setState("0_userdata.0.schalter.OpenMediaVaultEin"/OpenMediaVaultEin/, true);
} else {
console.debug("NAS RaspiOpenMediaVault ausgeschalten!");
console.debug("exec: " + "'ssh -t rupi@192.168.1.65 'sudo shutdown -h 0'");
/exec('/opt/iobroker/script/shutdown_raspiomv.sh');/
exec("ssh -t rupi@192.168.1.65 'sudo shutdown -h 0'");
setStateDelayed("shelly.0.SHSW-1#8CAAB50558E3#1.Relay0.Switch"/[object Object]/, false, 30000, false);
setState("0_userdata.0.schalter.OpenMediaVaultEin"/OpenMediaVaultEin/, false);
}
});Auf der Befehlszeile funktioniert der SSH-Befehl tadellos. Im Script wird interessanterweise nur der SetStateDelayed vom Shelly-Schalter ausgeführt u. der PC eiskalt ausgeschalten. Weder der console.debug, noch der exec-Befehl werden ausgeführt. Ich verstehe nicht warum. Kann mir da jemand helfen?
-
@rupobk 1. Musst Du die ssh keys im Homeverzeichnis des jeweiligen Users einrichten und 2. Wenn Dein Script läuft, läuft es mit dem User iobroker, wenn Du die Befehlszeile aufmachst mit dem User, mit dem Du Dich angemeldet hast. Du musst also den User iobroker auch auf dem Zielsystem die entsprechenden Rechte einrichten.