Отключение светодиодов

Не получилось отключить светодиоды при помощи скрипта. Понятно, что можно настроить их из панели, но хотелось бы разобраться, почему они не отключаются из автозагрузки. Скрипт я создал, как описано в документации на оффсайте (Работа с LED | Wiki.js). Сам скрипт запускается и отрабатывает нормально - светодиоды гаснут (проверял из Терминала). Но вот запускаться из автозагрузки не хочет. Также пробовал просто команды прописать в автозагрузку без самого скрипта - не помогло. Не подскажите, где тут собака порылась?

В wiki ошибка в команде, пропущен один символ &

Там написано
touch /etc/led_off.sh & chmod +x /etc/led_off.sh

а должно быть
touch /etc/led_off.sh && chmod +x /etc/led_off.sh

Хотя и с одним амперсандом в данном конкретном случае результат будет тот же.

Я разобрался в принципе. Просто я столкнулся с Линуксом впервые и только методом научного тыка получилось кое-что понять)))). Светодиоды не гаснут не из-за двойного/одинарного амперсанда. Дело в том, что при перезагрузке сначала обрабатывается rc.local и светодиоды гаснут, но сразу же загрузка идет дальше и обрабатывается информация об их состоянии из Система-Индикаторы и и они включаются. Промежуток между командами из rc.local и Система-Индикаторы видимо настолько мал, что светодиоды не успевают даже погаснуть.
Разработчикам видимо стоит поправить информацию в Wiki.

После дальнейших изысканий))) выяснил следующее - переключатели стоит обнулять через какое-то время, чтобы прошла полная инициализация роутера. Для этого достаточно в скрипт добавить sleep 20:

#!/bin/sh

sleep 20

echo “none” > /sys/class/leds/blue:lan-1/trigger
echo “none” > /sys/class/leds/blue:lan-2/trigger
echo “none” > /sys/class/leds/blue:lan-3/trigger
echo “none” > /sys/class/leds/blue:wan/trigger
echo “none” > /sys/class/leds/red:wan/trigger
echo “none” > /sys/class/leds/blue:wlan-24/trigger
echo “none” > /sys/class/leds/red:wlan-50/trigger
echo “none” > /sys/class/leds/blue:power/trigger
echo “default-on” > /sys/class/leds/red:wan/trigger

а для запуска в команду в rc.local в конце добавить амперсанд
/etc/led_off.sh &

Здравствуйте! А можно это расписать подробно, как сделать новичку? Есть ли готовый скрипт, чтоб вырубить все светодиоды? Из панели не отключаются. Светодиоды ночью просто бесят!

  1. В Терминале надо ввести команду:
    touch /etc/led_off.sh && chmod +x /etc/led_off.sh
  2. В File Manager найти файл /etc/led_off.sh и вставить в него команды из моего прошлого сообщения.
  3. В файле /etc/rc.local перед командой exit 0 вставить команду:
    /etc/led_off.sh &
  4. Перезагрузить роутер.

Индикаторы отключаются при перезагрузке, но через некоторое время снова включаются. Может я что не так сделал, просто впервые имею дело с таким.

Подробней надо бы. Что в /etc/rc.local, какой скрипт используете и тд?

Put your custom commands here that should be executed once

the system init finished. By default this file does nothing.

/etc/led_off.sh &

exit 0

Как вы и расписали в своем 2 посте, пробовал число sleep увеличивать не помогло.

А до скольких sleep увеличивали?
У меня такой скрипт работает:
sleep 20
echo none >> /sys/class/leds/blue:power/trigger
echo 0 >> /sys/class/leds/blue:power/brightness
sleep 150
echo none | tee /sys/class/leds/blue:lan-1/trigger /sys/class/leds/blue:lan-2/trigger /sys/class/leds/blue:lan-3/trigger /sys/class/leds/blue:wan/trigger /sys/class/leds/blue:wlan-24/trigger /sys/class/leds/red:wlan-50/trigger /sys/class/leds/blue:power/trigger >> /dev/null
echo 0 >> /sys/class/leds/blue:lan-1/brightness
echo 0 >> /sys/class/leds/blue:lan-2/brightness
echo 0 >> /sys/class/leds/blue:lan-3/brightness

sleep 50-200 делал. Как я понимаю этот скрипт в файл led_off.sh сохранять? попробовал перезагрузил, все равно горят

Сам скрипт led_off.sh точно работает? Надо попробовать запустить его вручную из Терминала после полной перезагрузки роутера. Если работает, то проверить запускается ли он при перезагрузке из rc.local (добавить в него какой-нибудь флаг срабатывания). После этого проверить не переключает ли что-нибудь светодиоды уже после отработки rc.local и окончания работы /etc/led_off.sh. В luci светодиодов достаточно нажать кнопку Применить (а это команда comit в терминале или скрипте), чтобы светодиоды встали по умолчанию.

Как запустить скрипт вручную? chmod a+x /etc/led_off.sh

  1. команда chmod правильная, её надо выполнить, чтобы поставить исполняемый атрибут на файл. Без неё скрипт не запустится

  2. первая строчка скрипта должна быть такой: #!/bin/sh
    Shebang (Unix) - Wikipedia
    По ней загрузчик узнаёт, какой интерпретатор скрипта запустить.

  3. как запустить скрипт вручную: открыть терминал или подключиться к роутеру по ssh и ввести путь до скрипта (/etc/led_off.sh)

А скажите, вам индикаторы вообще надо выключить или по расписанию включать-выключать?

Если вообще выключить, то почему бы не сделать это из веб-интерфейса?

В веб интерфейсе есть возможность управлять светодиодами и полностью их отключить.
Веб морда роутера->Система->Индикаторы->Вот так сделать и полностью все погаснут.

Ребят, всем спасибо за помощь, получилось через веб-интерфейс их отключить.