Не работает runShellCommand

Здравствуйте! Есть некий исполняймый файл, тот же самый bash к примеру. Я хочу запустить его с помощью функции runShellCommand(“bash /etc/wb-rules/script.sh”), но ничего не происходит. Может есть какие-то правила которые нужно перезапустить для работы?

Добрый день. Попробуйте так

runShellCommand('bash /etc/wb-rules/script.sh')

А так же проверьте правильность всего скрипта, возможно скрипт до runShellCommand просто не доходит

Не помогает.

Правила wirenboard

defineVirtualDevice(‘SomeAction’,{
title: “Some_action”,
cells: {
Stop: {
type: “switch”,
value: false
}
}
});

defineRule(“StopAction”, {
whenChanged:“SomeAction/Stop”,
then: function(newValue, devName, cellName){
if (newValue == true){
runShellCommand(“bash /etc/wb-rules/script.sh”);
}
}
});

Код script.sh

#!/bin/bash
echo “runShellCommand work!” >> text

  1. У вас в строке с runShellCommand использованы двойные ковычки, вместо рекомендованных вам ранее одинарных.
  2. В выражении defineVirtualDevice использованы вообще непонятные символы вместо ковычек (" ‘ ")
  3. В остальных предложениях также вместо двойных ковычек надо использовать одинарные.
  4. если “скопипастить” весь этот текст в веб интерфейсе в редакторе Rules - встроенный редактор при попытке сохранить сообщает об синтаксических ошибках.
  1. Я пробовал менять на одинарные и это не помогло.
  2. Текстовый редактор этого сайта почему-то отобразил одинарные кавычки апострофом.
  3. Это javascript разницы между одинарными и двойными кавычками нету.
  4. Если добавить в defineRule реакцию другой кнопки она работает, а runShellCommand нет.
    Как устроена обертка runShellCommand?
  1. Создал правило new_test.js. Скопипастил в него ваш скрипт. Привел его в порядок:
defineVirtualDevice('SomeAction',{
  title: 'Some_action',
	cells: {
		'Stop': {
			type: 'switch',
			value: 'false'
		}
	}
});

defineRule('StopAction', {
	whenChanged:['SomeAction/Stop' ],
	then: function(newValue, devName, cellName){
		if (newValue == true){
			runShellCommand('bash /etc/wb-rules/script.sh');
		}
	}
});
  1. создал файл /etc/wb-rules/script.sh

  2. Включил виртуальный свитч:
    Some_action

  3. Обнаружил в корне файл text:

1 лайк