Потрібен скрипт для перезапуску ЕМУ - DreamBox Satellite Forum
Добре. Припустимо, що у вас в системі використовується для запуску зв'язкиnewcs-mgcamdскрипт:/var/script/mgcamd_1.31_newcs_1.62_cam.sh
Файл/var/script/restart_emu.sh(право 755):
Скрипт після свого запуску "спатиме" задану кількість секунд, вказану в параметріSLEEPTIME. В даному випадку 300 секунд, але можна вказати будь-яку кількість часу на секундах. А потім скрипт перезавантажить зв'язкуnewcs-mgcamd, що вам і потрібно, і закінчить свою роботу. Слід зазначити, що скрипт перезавантажуватиме зв'язкуnewcs-mgcamdлише один раз після першого запуску ему, що обумовлено виконанням рядків:
[ ! -e /tmp/.norestartemu ] exit 1 touch /tmp/.norestartemu
Тобто. якщо файлу/tmp/.norestartemuще немає, то продовжити виконання скрипту та створити такий файл. А при повторному запуску скрипта такий файл вже буде і після перевірки скрипт відразу закінчить свою роботу, не перезавантажуючи емулятор. Після перезавантаження Дрім файл/tmp/.norestartemuбуде видалено автоматично.
Тепер пропишемо запуск цього скрипту, коли він стартуватиме. Для цього додамо такий рядок (виділена червоним кольором) у файлmgcamd_1.31_newcs_1.62_cam.sh.
Файл/var/script/mgcamd_1.31_newcs_1.62_cam.sh(право 755):
Якщо ж у вас в іміджі якось інакше запускається дана зв'язкаnewcs-mgcamd, і ви не знаєте як, то можна піти іншим шляхом. При кожному рестарті енігми запускається скрипт ініціалізації/var/etc/init. Як правило, цього скрипта спочатку немає в іміджі, але ви можете створити його самі і додати туди рядок для запуску скриптаrestart_emu.sh.
Файл/var/etc/init(право 755):
Якщо ж у вас такийфайл є, то додайте в нього тільки рядок, виділений червоним кольором. Амперсанд (&) наприкінці рядка – обов'язково.
(Увага з файлом/var/etc/initтреба бути особливо уважним. Найменша неточність або якийсь неприпустимий символ (особливо віндовський переклад рядка) і ви перешиваєте свій Дрім по-новому.)
Тепер потрібно трохи змінити скрипт/var/script/restart_emu.sh.
Файл/var/script/restart_emu.sh(право 755):
Скрипт побудований перевірках списку завантажених процесів, тобто. що було завантажено, те й буде перезавантажено через певну в параметріSLEEPTIMEкількість часу, а чого не було, те й не треба запускати. Маються на увазі newcs та mgcamd, звичайно. Це корисно, якщо ви раптом захочете скористатися іншим емулятором, а про скрипти забудете. Дуже уважно перевірте відповідність чотирьох параметрів з вашими реаліями і якщо треба, то змініть:
SLEEPTIME=300 (час у секундах, після якого буде перезапуск ему)CSBIN=newcs_1.62 (повне ім'я файлу кардсервера>newcs)EMUBIN=mgcamd_1.31 (повне ім'я файлу емулятораmgcamd)EMUDIR=/var/bin (повний шлях до директорії, де знаходяться mgcamd і newcs)
PS. Мене останнім часом часто просять в особу написати подібні скрипти для запуску ему із затримкою, для одноразового перезавантаження, для постійного перезавантаження через певний час і т.д. Постарався розписати докладно, щоби прийшло розуміння, що так за чим запускається, і що при цьому відбувається. Що не зрозуміло – питаємо.