iFinder Posted April 8, 2018 Posted April 8, 2018 Как запустить, остановить и добавить в автозагрузку пакет OpenWRT ? К сожалению, поиск по форуму и интернету не увенчался успехом. Заранее благодарен Quote
0 iFinder Posted April 25, 2018 Author Posted April 25, 2018 (edited) Как и планировал, восполняю отсутствие систематизированной информации на форуме, выкладывая ответ на свой вопрос в сжатом виде. Надеюсь, это будет способствовать как популяризации системы Entware (как мощного расширения домашних роутеров Keenetic), так и средств домашней автоматизации (интернета вещей). АЛГОРИТМ ДЕЙСТВИЙ ДЛЯ НОВИЧКОВ: КАК ЗАПУСТИТЬ, ОСТАНОВИТЬ И ДОБАВИТЬ В АВТОЗАГРУЗКУ ПАКЕТ OPKG В качестве образца мною был выбран нужный мне для достижения своих целей пакет mosquitto-ssl (реализация пакета MQTT-сервера). ПОДГОТОВКА: 1. Установил систему пакетов Entware, как указано в инструкции уважаемого TheBB. 2. Выяснил соответствие путей: \\ExtraII\Entware == /opt, анализируя это: Путь при удаленном доступе на флэшку, вставленной в USB-разъем: \\ExtraII\Entware\etc\init.d\rc.unslung Появившийся в поле WEB-интефрейса роутера "Приложения - OPKG - Сценарий initrc:" путь: /opt/etc/init.d/rc.unslung 3. Подключился к роутеру через его SSH-интерфейс с помощью программы PUTTY 4. Установил пакет mosquitto-ssl: opkg install mosquitto-ssl 5. Для выполнения настроек (управление файловой структурой и редактирование файлов) установил пакет mc (Midnight Commander is a visual file manager. It's a feature rich full-screen text mode application that allows you to copy, move and delete files and whole directory trees, search for files and run commands in the subshell. Internal viewer and editor are included as well.) opkg install mс 6. Выполнил настройку установленного пакета MQTT-сервера (это отдельная тема) . ЗАПУСК ПАКЕТА ВРУЧНУЮ: 6. В результате выполнения п.4 выяснилось, что запуск этого пакета вручную надо делать с параметрами: mosquitto -c /opt/etc/mosquitto/mosquitto.conf -d АВТОЗАПУСК ПАКЕТА: За предоставленную информацию отдельное спасибо уважаемому TheBB. 7. С помощью пакета Midnight Commander создал файл S10_mosquitto. ПРИМЕЧАНИЕ: Для автостарта, имя созданного скрипта должно начинаться с `S`, либо, для ручного старта набрать: `/opt/etc/init.d/SNN_имя start` , где NN - присвоенный номер. Скрипты запуска, начинающиеся с `K` исключаются из автозапуска (для ручного запуска см. пример с `S`) ПРИМЕЧАНИЕ: Так как я не знал как создать файл, то просто скопировал и очистил один из имевшихся. 8. С помощью Midnight Commander переместил созданный файл в папку /opt/etc/init.d/ 9. Сделал это файл исполняемым командой: chmod +x /opt/etc/init.d/S10_mosquitto ПРИМЕЧАНИЕ: В результате в Midnight Commander файл стал отображаться другим цветом и со звездочкой 10. Благодаря уважаемому vadimbn, за что ему большое спасибо, стало известно: Написание скриптов - это слишком обширная тема, придется тратить много времени и приводить очень много ссылок. В Unix/Linux существует очень много разнообразных интерпретаторов, на языках которых можно писать скрипты. Это и разнообразные оболочки-shell (bash, sh, tcsh, ksh, zsh и другие), и интерпретируемые языки программирования (python, perl, php, ruby - это только самые известные из них). Скрипты на shell могут содержать много строк, часть из которых содержит команды самого shell, а часть - команды операционной системы Unix/Linux, которые всегда присутствуют в ней либо в виде сборки busybox (набор команд для встраиваемых систем, обычно это одна программа и куча символических ссылок на нее), либо в виде отдельных приложений. Можно писать интерактивные приложения, можно писать скрипты автозагрузки, скрипты для автоматизации вашей деятельности. Написание программ на скриптовых языках - это тема для многих и многих весьма объемных томов. Хотите найти как писать скрипты на bash - ну так и пишите в поисковике "bash скрипты". Первые символы в самой первой строке #! - после этого так называемого шебанга ставится программа-интерпретатор скрипта. Скрипт может быть написан на bash, тогда строка примет вид: #!/bin/bash или на perl, тогда строка будет такой: #!/usr/bin/perl Иными словами, если у скрипта есть права на запуск, то при его запуске загрузчик анализирует эту строку и передает скрипт на исполнение интерпретатору, указанному в этой строке. Строка PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin инициирует переменную окружения PATH для этого скрипта. Эта переменная есть и в Windows, если вы давно пользуетесь этой системой, то могли сталкиваться с ней. Эта переменная описывает пути, где нужно искать исполняемые файлы - программы и скрипты. 11. Написал самый примитивный скрипт запуска - в файле S10_mosquitto прописал всего одну строку: mosquitto -c /opt/etc/mosquitto/mosquitto.conf -d ПРИМЕЧАНИЕ: Вставку содержимого буфера в текст редактируемого файла в МС удобно делать нажатием Shift-Insert ОСТАНОВКА ПАКЕТА: 12. Также благодаря vadimbn стало известно: Скрипты для автозапуска демонов в системе могут писаться с использованием некоторых соглашений, проверок, переменных среды. При этом хорошо бы руководствоваться здравым смыслом. Если вам для запуска вашего приложения будет достаточно одной строки: путь/до/приложения/приложение -некие -параметры -приложения и оно не требует корректного завершения (то есть, например, не пишет информацию ни в какие файлы), то зачем городить огород? Достаточно будет этой одной строчки. Если нужны корректные start/stop скрипта - то для этого надо вводить проверки текущего состояния приложения. Лучше проанализировать как созданы уже имеющиеся скрипты, использовать их в качестве примеров. Без этих проверок ваши команды: /opt/etc/init.d/S10_mosquitto start /opt/etc/init.d/S10_mosquitto stop не имеют смысла, Ваш скрипт содержит только одну строку для запуска приложения, которая всегда выполняется, независимо от параметров stop и start. Это и приводит к появлению ошибки: Error: Address already in use так как приложение уже работает и занимает сокет. 13. Так как потребности в остановке пакета mosquitto для моих целей у меня не было, да и получение информации от участников форума оказалось слишком изматывающим, то и прорабатывать эту возможность я дальше не стал. Но буду признателен, если кто-то восполнит этот пробел. РЕЗУЛЬТАТЫ: 14. Тестовая перезагрузка роутера показала, что установленный пакет MQTT-сервера успешно автозапускается. Edited April 25, 2018 by iFinder 5 Quote
0 iFinder Posted April 25, 2018 Author Posted April 25, 2018 Просьбы к Модератору темы: 1. Для более удобного восприятия информации Участниками форума (дабы избежать ими прочтения абсолютно ненужных постов) прошу перенести алгоритм в начало темы. 2. Для более правильного содержания затронутой темы прошу переименовать тему на "Алгоритм действий для новичков: Как запустить, остановить и добавить в автозагрузку пакет OPKG" Quote
0 iFinder Posted April 25, 2018 Author Posted April 25, 2018 (edited) 1 час назад, iFinder сказал: Разъясните, пожалуйста что Вашу мысль. что такое LOR ? Чтобы новичкам не тратить время, сообщаю, что, вероятно, LOR это: Linux.org.ru (сокращённо ЛОР) — веб-сайт, посвященный операционной системе Linux. На самом деле отношение к Linux имеет очень поверхностное, являясь, по сути, местом кучкования наивной и падкой на троллинг школоты, задротов, студентов/аспирантов (т. н. экспертов), изредка разжижаемое публикой из числа низкопробных сисадминов-эникейщиков. Edited April 25, 2018 by iFinder Quote
0 iFinder Posted April 25, 2018 Author Posted April 25, 2018 В 23.04.2018 в 10:34, Александр Рыжов сказал: Надеюсь, что ваш энтузиазм не закончится вместе с этой темой. Мне жаль, что беседа стилем стала схожа с филиалом LOR'а. Это скорее исключение. Надеюсь, что АЛГОРИТМ ДЕЙСТВИЙ ДЛЯ НОВИЧКОВ: КАК ЗАПУСТИТЬ, ОСТАНОВИТЬ И ДОБАВИТЬ В АВТОЗАГРУЗКУ ПАКЕТ OPKG изменит ситуацию в этой теме к лучшему ! Думаю, что следующим интересным алгоритмом вполне может быть "Алгоритм действий для новичков: Отслеживание события в системе и выполнение соответствующего действия" (например, подключился новый пользователь к роутеру - отправляется почта/SMS/MQTT-сообщение). Благо похожие темы на форуме есть. Quote
0 zyxmon Posted April 25, 2018 Posted April 25, 2018 Тема не раскрыта и на 5%. Много бреда - проще удалить и дать правильную ссылку. 1 3 Quote
0 Алексей Коваленко Posted April 7, 2022 Posted April 7, 2022 прошу помощи. не могу понять, как мне вручную создать скрипт. не знаю, как кратко описать, по этому пишу подробно. установлены пакеты node и node-npm. потом я делаю cd tmp/mnt/номер жёсткого диска/название папки с содержимым. находяcь в этой папке выполняю node index.js я понимаю, что чтобы это выполнялось в автозапуске, то надо создать скрипт в init.d. понимаю, что номер в названии это порядок записи. но что там писать я не понимаю. пытаюсь понять по примеру находящихся там, но не понимаю. может кто помочь в составлении скрипта? Quote
Question
iFinder
Как запустить, остановить и добавить в автозагрузку пакет OpenWRT ?
К сожалению, поиск по форуму и интернету не увенчался успехом.
Заранее благодарен
Top Posters For This Question
32
17
7
5
Popular Days
Apr 20
24
Apr 9
19
Apr 21
13
Apr 25
7
Top Posters For This Question
iFinder 32 posts
zyxmon 17 posts
Mamay 7 posts
TheBB 5 posts
Popular Days
Apr 20 2018
24 posts
Apr 9 2018
19 posts
Apr 21 2018
13 posts
Apr 25 2018
7 posts
Popular Posts
iFinder
Как и планировал, восполняю отсутствие систематизированной информации на форуме, выкладывая ответ на свой вопрос в сжатом виде. Надеюсь, это будет способствовать как популяризации системы Entware
zyxmon
Тема не раскрыта и на 5%. Много бреда - проще удалить и дать правильную ссылку.
zyxmon
А хотите я расскажу про перфокарты и БЭСМ-4 и БЕСМ-6. Мы были последним потоком, кто изучал программирование в 8-ричных кодах. Могу и экзамен принять
Posted Images
66 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.