Wi-CAT LLC

Wireless Comprehensive Advanced Technology. Build your network now.

Wi-CAT LLC
Навигация Форума
Вы должны войти, чтобы создавать сообщения и темы.

(решено) Добавить свой сервис (RWFS), возможно?

Доброго времени.

Как добавить в систему свой бинарник так чтоб он и переживал перезагрузку и (желательно) проживал в /bin ( или /sbin, на сколько я понимаю это линк на /bin)?

Тему "Wive-NG-MT Кастомизация прошивки с помощью RWFS" на наге почитал, понямию что это немного не то, там больше про конфиги в /etc и значения nvram

Устройство SNR-CPE-W4N, так что entware и /opt мне не светят, да и бинарника этого в entware не водится.

Сам бинарник весит 87Kb, так что думаю что с его размещением проблем быть на должно (?)

 

Можете разместить его в rwfs проблем никаких. Например в /etc/scripts ну раз маленький. Всё остальное живёт на RO fs и без пересборки никак.

Понятно.

Тогда еще вопрос по rc.d - чем отличаются скрипты S* от W*?

Скрипт после помещения в rc.d и создания на него линка в init.d нужно еще как нибудь "включать", как в openwrt (root@OpenWrt:/# /etc/init.d/example enable)?

Под какой буквой и номером лучше будет добавить стартовый скрипт, чтобы он запускался после установки правил iptables? Пробовал S97 - слишком рано (за долго до iptables по времени из лога).

Под буквами W - сервис оказывается не запущенным после загрузки.

Зачем мне это надо - хочу при запуске сервиса открывать ему порт. При этом дефолтные конфиги править не хочется.

S стартует ы stage1 и безусловно, чисто последовательно. W исполняется в stage2 из /etc/scripts/services_restart.sh  в зависимости от события.

Читаем риадми в ветке:

CURRENT HOOKS FOR ADVANCED USER LOGIC:

1) /etc/udhcp.d - scripts start after udcpc renew lease
2) /etc/vlan.d - scripts start after vlans configure
3) /etc/ip(6)tables.d - scripts start after netfilter configure
4) /etc/ppp-l2tpsrv/ip-up(down).d - scripts start after client connect(disconnect) to VPN server
5) /etc/ppp/ip-up(down).d - scripts start after router connetc(disconnect) to external VPN server
6) /etc/scripts/wan_up.sh - this script start after WAN up and full services reinit

Т.е. если совсем по простому достаточно в /etc/iptables.d положить сразу скриптик в котором добавлять правило нетфильтра и стартовать этот самый сервис. Только не забываем что при перестройке правил iptables оно будет исполняться каждый раз. Т.е. не забываем кильнуть демона перед повторным запуском. Зато и никаких конфигов править не нужно. =))

А вообще нет никакой принципиальной разницы добавятся правила нетфильтра до или после запуска сервиса. Это сущности никак не связанные.

Понято.

Пока в общем я сделал стартовый скрип S99xbin и поставил в нём sleep 20 (на всякий) перед добавлением правила в iptables (с проверкой на его возможное уже там существование) и запуском сервиса в секции старт.

Как я понял исполняется он самым последним из S скриптов (и 99 и x следом) + еще и задержка внутри. Мешать/задерживать запуск всего остального это как я понимаю не должно(?).

Воозможно это неправильно, но мне это кажется и в действии проще и при обновлении версии будет проще быстро установить сервис заново.

По последнему - либо я не так понимаю, либо не так делаю, но если мой скрипт по времени логируется раньше чем в логе пошло iptables: Add netfiler rules / iptables: Allow established/related in input / iptables: Drop invalid state connections и т.д., то моего правила после загрузки по iptables -L я не вижу. А вот если после - то вижу.

Добавлял и как iptables -I INPUT -p tcp --src $lan_ipaddr/$lan_netmask --dst $lan_ipaddr --dport 1234 -j ACCEPT

и как iptables -A и т.д.

1 - для разрешений локальных сервисов в INPUT есть отдельная цепочка servicelimit
2 - что бы использовать переменные $lan и т.д.  нужно заинклудить gloabal

# include global config
. /etc/scripts/global.sh

3 - добавление правил в нетфильр должно быть только из логики iptables живущей в ините, для этого и сделаны хуки (читай выще), иначе никакой гарантии что по какой-то нужде нетфильтр не будет переконфигурирован снова уже без учёта ваших правок, демона можете хоть откдуа и в каком угодно порядке запускать, а вот правила в нетфильтр добавляются в строго определённом месте, иначе не будут учтены
4 - нет никакой разницы как оформляете внутри, будет там 2 файлика, 3, или даже стопка. Оформляете это пакетом и всё.

Ничего более сказать не могу, ибо не знаю что это за сервис такой, от чего зависит и надо ли действительно заморачиваться на тему ожидания перед запуском и т.д.

Понял, поправил, работает. Спасибо.

Ну вот и отлично.

Не за что.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: