SAT-PLUS.COM.UA - Форум о спутниковом телевидении: Перезагружаем mgcamd на dreambox 500s при выходе из режима StandBy - SAT-PLUS.COM.UA - Форум о спутниковом телевидении

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Перезагружаем mgcamd на dreambox 500s при выходе из режима StandBy

#1 Пользователь офлайн   admin 

  • Администратор
  • Группа: Администраторы
  • Сообщений: 101
  • Регистрация: 26 Февраль 11

Отправлено 27 Июнь 2011 - 11:23

Написать данный скрипт меня побудил одно обстоятельство. Поставил я одному знакомому dreambox 500s. Знакомый хороший, но с техникой на вы. Однажды звонит мне и жалуется на неработающий ресивер. Я приезжаю к ему. Нажимаю синюю кнопку. Жму restart Auto-Cam. Все работает. Я в душе проматерился и поехал домой писать данный скрипт.
Первым делом выяснил какие скрипты запускаются при нажатии на кнопку StandBy. Вот эти красавцы enigma_enter_standby.sh и enigma_leave_standby.sh. Файл enigma_enter_standby.sh запускается когда вы выключаете ресивер. Соответственно enigma_leave_standby.sh при включении.
Чтобу перезагрузить эмулятор нужно сначала убить его killall -9 mgcamd, а затем заново запустить /var/bin/mgcamd &. Но проблема в том, что эмулятор может называться по разному: mgcamd, mgcamd1.35, mgcamd_1.35a и т.д. Есть пара способов как это выяснить. Заходим telnet-ом в ресивер. Пишем каманду ps -a. В открывшемся списке ищем чтото похожее на /var/bin/mgcamd1.35. /var/bin/ – путь до эмулятора mgcamd1.35 – файл эмулятора. Можно визуально через любой FTP клиент посмотреть какой эмулятор лежит в папке /var/bin/. После того как мы все узнали приступаем к созданию скрипта.

Пишем конфигурационный файл /var/script/restartemu.conf:

EMU_NAME=mgcamd_1.35         # Имя файла эмулятора
EMU_DIR=/var/bin                   # Путь к файлу эмулятора
SLEEP_TIME=1                       # Пауза между убиством процесса и стартом
MESSAGE=on                         # Выводить ли сообщение о перезагрузке эмулятора
KILL_EMU=off                       #Когда убивать процесс. off – при выключении ресивера on – при включении
LOGIN=root                         # Логин и пароль от dreambox
PASS=dreambox

# удаляем все логи  из папки tmp

remove_mgcamd_tmp(){
rm -rf  /tmp/*mgcamd*
}


Теперь пишем сами скрипты. Создаем в папке /var/script/ файл start_emu.sh со следующим содержанием

#!/bin/sh
CONF=/var/script/restartemu.conf

# проверяем существование конфигурационного файла и загружаем его
if [ ! -f $CONF ]; then
echo «ERROR: Config ‘$CONF’ not exists. Program aborted.»
exit 1
fi
. $CONF

#проверяем существование  файла эмулятора

if [ -x $EMU_DIR/$EMU_NAME ]; then

# Если переменная KILL_EMU стоит «on» то убиваем процесс эмулятора

if [ $KILL_EMU = "on" ]; then
killall -9 $EMU_NAME
sleep 1
fi
remove_mgcamd_tmp # удаляем логи
sleep $SLEEP_TIME # делаем паузу перез запуском эмулятора
$EMU_DIR/$EMU_NAME & # запускаем эмулятор

# выводим сообщение

if [ $MESSAGE = "on" ]; then
wget -q -O – http://$LOGIN:$PASS@127.0.0.1/cgi-bin/message?Restart%20$EMU_NAME
fi

else
echo «ERROR: Emu ‘$EMU_DIR/$EMU_NAME’ not exists. Program aborted.»
fi

exit 1


Теперь пишем скрипт stop_emu.sh. И помещаем его в /var/script/

#!/bin/sh
CONF=/var/script/restartemu.conf

# проверяем существование конфигурационного файла и загружаем его
if [ ! -f $CONF ]; then
echo «ERROR: Config ‘$CONF’ not exists. Program aborted.»
exit 1
fi
. $CONF

# Если переменная KILL_EMU стоит «off» то убиваем процесс эмулятора

if [ $KILL_EMU = "off" ]; then
killall -9 $EMU_NAME
fi

exit 1


Теперь запустим эти скрипты в нужный момент. Как я говорил выше нам нужны /var/etc/enigma_enter_standby.sh и /var/etc/enigma_leave_standby.sh.

enigma_enter_standby.sh

#!/bin/sh
/var/script/stop_emu.sh &  # запускаем файл stop_emu.sh при выключении ресивера


enigma_leave_standby.sh

#!/bin/sh
/var/script/start_emu.sh &   # запускаем файл start_emu.sh при включении ресивера


Осталось самая малость – назначить CHMOD-ы. Для файлов enigma_enter_standby.sh, enigma_leave_standby.sh, start_emu.sh, stop_emu.sh ставим 755. Файлу restartemu.conf ставим CHMOD 644.

ЗЫ: Тем кому в лом писать все это в ручную – качаем готовый скрипт Прикрепленный файл  restartemu.tar.gz (6,5К)
Количество загрузок:: 420
ЗЗЫ: Пробовал на имиджах Nabilo и Gemini

0


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей

Яндекс.Метрика
Яндекс цитирования Спутниковое и эфирное ТВ, Интернет, комплексный электромонтаж, в Киеве и области Цифровое телевидение в России