OpenRC и управление сетевыми службами [SOLVED]

Добрый день! Извиняюсь, если уже было... Использую OpenRC 0.3, два сетевых интерфейса на ноуте (x86) и хочу _автоматически_ запускать сетевые службы (типа ntp-client и sshd) после установки связи с Интернетом.

Scheduling в OpenRC почему-то не работает с wlan0, но успевает отрабатывать с eth0. Оба девайса настраивал с ifplugd, но это не помогло. :-(((

Посоветовали тут воткнуть сетевые службы в /etc/conf.d/local.start, что я и сделал (после некоторой паузы при наличии пинга), но этот способ оказался не очень... Авторизация по wlan0 не всегда успевает проходить быстро, а кеды стартуют при таком подходе с "чёрным экраном" (нужно пошевелить мышь или что-нть нажать).

Подумал написать небольшого демона (rc script), который будет стартовать указанные службы при поднятии определённых интерфейсов, останавливать при опускании интерфейсов, а также работать в паре с iflugd, выбирая предпочтительные интерфейсы, если это определено в конфигурации. Последнее иногда полезно иметь, чтобы связь с сетью при наличии более одного поднятого интерфейса осуществлялась только через один.

Собс-но два вопроса. 1. есть ли решение проблемы scheduling в OpenRC при долгой авторизации по wireless? 2. Не будет ли предлагаемый демон очередным "велосипедом" (имеется ввиду наличие схожего по функционалу готового решения)?

Не знаю как на счёт ifplugd,

Не знаю как на счёт ifplugd, но моя сетевая с netplug работает прекрасно под openrc-3*. Все сетевые службы запускаются и останавливаются при появлении или отсутствии сети. Пусть и по локалке. Так и пишется : служба будет запущена после запуска net.eth0. Это касается net.eth0+dhcpcd (netplug) или статического адреса. И наблюдал лично для samba(+) ntp-client(+) ntpd(+) sshd(+) lighttpd(+) rsync(-) xinetd(- да и зачем останавливаться) dante-sockd(+).

Тоже самое для

Тоже самое для net.eth0+dhcpcd (ifplugd).
А вот для net.wlan0+dhcpcd (ifplugd), к сожалению, не так :(
OpenRC пишет, что "будет запущено", но не запускает (sshd/ntp-client).
О том и сабж...

с wpa_supplicant то же самое?

с wpa_supplicant то же самое?

ДА,

Это всё с wpa_supplicant из-за долгой авторизации. С ifplugd и без него - одинаково. Точка доступа бывает сильно загружена (всего три ноута и два КПК, в основоном - сидирование по KTorrent). Поэтому иногда авторизация проходит за 5-10 секунд, а иногда и 20 недостаточно.

Вот пример конфигурации -

Вот пример конфигурации - ifplugd только на eth0, на wlan0 - только wpa_supplicant.

/etc/conf.d/net:

modules="ifconfig dhcpcd plug !iwconfig wpa_supplicant"
dns_domain_lo="klarknet.home"

# Ethernet card
config_eth0="dhcp"
dhcp_eth0="nontp nonis"
ifplug_eth0="-a -i eth0"

# Wireless adapter
modules_wlan0="wpa_supplicant !plug"
#ifplug_wlan0="-a -i wlan0 --api-mode=wlan"
wpa_supplicant_wlan0="-q -D wext"
dhcp_wlan0="nontp nonis"
config_wlan0="dhcp"

В результате - такой вот startup screen:

 * Bringing up interface eth0
 *   Starting ifplugd on eth0 ...                        [ ok ]
 *     Backgrounding ...
 * WARNING: net.eth0 has started, but is inactive
 * Bringing up interface wlan0
 *   Starting wpa_supplicant on wlan0 ...                [ ok ]
 *   Starting wpa_cli on wlan0 ...                       [ ok ]
 *   Backgrounding ... ...
 * WARNING: net.wlan0 has started, but is inactive
 * Mounting network filesystems ...                      [ ok ]
 * Setting clock via the NTP client 'ntpdate' ...
 * Failed to set clock                                   [ !! ]
 * ERROR: ntp-client failed to start
 * Starting sshd ...                                     [ ok ]

Хотя из него видно, что sshd успешно стартанул, это не правда. Он не работает даже после поднятия интерфейса. Кстати, таковое ещё не свидетельствует о наличии рабочего соединения. Например, мой роутер может успешно работать, в то время как провайдер может сломаться. Что иногда и происходит. Было бы логичней пускать сетевые службы при _достижении соединения_.

Кроме того, сетевой демон вполне может оказаться полезным для типичного ноутбука. Имея два интерфейса, как правило, используется лишь одна сеть. И, в основоном, в квартире используется wifi. Но если приспичит подключиться по ethernet, который быстрее и надёжней, wifi должен автоматически отключаться.

SOLVED!

postup() {} в /etc/conf.d/net конечно же решает сразу все проблемы. Чёт я сразу не сообразил. :-(

спасибо за наводку - сам

спасибо за наводку - сам мучаюсь )
седня поковыряюсь...

?

klark73 написал(а):
postup() {} в /etc/conf.d/net конечно же решает сразу все проблемы. Чёт я сразу не сообразил. :-(

а что необходимо вписать?
postup() {
return 0
}
?

сам через dhcpcd запускаю, так так

* WARNING: net.eth0 has started, but is inactive
* WARNING: netmount is scheduled to started when net.eth0 has started

А посмотреть в /etc/conf.d/net.example !? ;)

Вобще-то что Вам надо, то и вписываете.
Я там просто сервисы нужные стартую /etc/init.d/XXXXX start
Если делать их только зависимыми по правилам OpenRC или baselayout -
то ничего не получится, т.к. после поднятия службы коннекта ещё нет,
а запуск следующих вызывает ошибку. postup() запускает нужные мне
службы вместо меня, после поднятия любого интерфейса,
дожидаясь предварительно прохождения пинга...

так это баг?

баг?

Как раз не баг а фича =)))

Вай-фай например... служба запущена? Запущена. Коннект установлен? Нет. Если от службы зависят другие службы, они запускаются по факту запуска службы, а не по факту чего-то там ещё. Например, обычно sshd пытается стартовать после запуска net.wlan0. А интерфейсу IP-шник по DHCP будет присвоен только после аутентификации на AP. Что всегда по-разному бывает... может 5 секунд уйти на это, а при плохой связи и все 40. Потом, OpenRC так скоренько "пролетает", что опрос запущено/нет производится в период запуска других служб. Когда запущена поселеняя, этот опрос прекращается. Если юзать только механизм зависимостей служб, наблюдается такая картина: net.wlan0 "ушла в background" (пытается аутентифицироваться), все от неё зависящие - тоже. Графика загрузилась - через какое-то время поднялся вай-фай. А те, что от него зависели - фигушки! Баг это или фича в OpenRC? Не знаю, наверное баг :) Но указанный способ решает проблему.

получается что postup() {}

получается что postup() {} перезагружает зависимые процессы? так?

объясните мне, пожалуйста, что делать?

http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml?part=4&chap=5
тут только про preup и predown написано

rc_depend_strict="NO"

Если нужно чтоб службы запускались независимо от того поднялся или нет интерфейс
то идем в rc.conf находим
rc_depend_strict="YES"

и меняем его на "NO"

спасибо, но это я уже давно

спасибо, но это я уже давно понял, не помогает.
и уже как вижу /etc/conf.d/net для eth0 не нужен

кто-нибудь может объяснить, как заставить подгрузить eth0

Это не помогло в моём случае :(

И комментарий в /etc/conf.d/rc про эту опцию говорит несколько о другом, совершенно.
А вот рабочее решение, которое я вчера сюда выложил, куда-то пропало. :(
Вопрос куда и почему? Вроде не матерился... :)

робототехника?:ok: перенос темы: ok

создал для своей проблемы отдельную тему
http://www.gentoo.ru/node/14055
жду решений shutdown -hP X

ры

этаоин_шрдлу написал(а):
tired?masturbate!

На работе устаёте?

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".