[РЕШЕНО ЧАСТИЧНО] net.ppp и зависимость служб, Падают службы при падении net.ppp1
JIyHoXoD 11 февраля, 2009 - 00:34
Через /etc/conf.d/net поднял pppoe-подключение к провайдеру. Выглядит вот так:
config_ppp1=( "ppp" ) link_ppp1="eth2" plugins_ppp1=( "pppoe" ) username_ppp1='dslxxxxx' pppd_ppp1=( "defaultroute" "lcp-echo-interval 15" "lcp-echo-failure 3" "mtu 1492" "mru 1492" "persist" "maxfail 0" ) routes_ppp1=( "default gw 213.228.116.163" ) depend_ppp1() { need net.eth2 }
Запускается и работает замечательно. Но при падении вслед за собой тянет много других служб:
pentagon ~ # /etc/init.d/net.ppp1 stop * Caching service dependencies ... * Service 'dnsmasq' already provides 'dns'!; * Not adding service 'named'... [ ok ] * Stopping dnsmasq ... [ ok ] * Stopping lighttpd ... [ ok ] * Unmounting network filesystems ... [ ok ] * Stopping ntpd ... [ ok ] * samba -> stop: smbd ... [ ok ] * samba -> stop: nmbd ... [ ok ] * Stopping squid ... * Waiting for squid to shutdown ................ [ ok ] * Stopping sshd ... [ ok ] * Stopping ppp1 * Bringing down ppp1 * Stopping pppd on ppp1 [ ok ]
Почему это происходит? Как избавится? Как восстановить работу служб при поднятии этого интерфейса вновь?
»
- Для комментирования войдите или зарегистрируйтесь
В хендбуке в пункте 4.d.
В хендбуке в пункте 4.d. посмотрите. Возможно у вас в /etc/init.d/net.ppp1 написано provide net (или он симлинк на net.lo), а всё что у вас останавливается как раз зависит от net.
/etc/init.d/net.ppp1
/etc/init.d/net.ppp1 действительно симлинк на net.lo. Почитав хэндбук понял что варианта два:
1. сделать net.ppp1 не симлинком, а копией net.lo и вычистить все provide'ы. Но их там много и не совсем понятно что именно чистить.
2. Отредактировать все init-скрипты и из них вычистить need net и use net. Тоже какой-то некрасивый вариант с хирургией
Посему вопрос - как организовать автоматичиский контроль за состоянием запущенных служб и их рестарт при падении?
net.ppp и зависимость служб, Падают службы при падении net.ppp1
Возможно поможет в /etc/rc.conf
rc_depend_strict="NO"
Частично решил проблему
Кажется поборол зависимости, хотя пришлось прибегнуть к хирургии. Строчка rc_depend_strict="NO" в rc_depend_strict="NO" ничего не дала. Структуру файла /etc/init.d/net.lo так и не разобрал. Поэтому отредактировал инит-скрипты нужных мне служб и везде закомментировал строчку need net.
Остался единственный ворпрос - организация авто-рестарта упавших служб.
ИМХО проще добавить в
ИМХО проще добавить в runlevel net.lo. Соответственно служба net будет запущена даже при остановке ppp.
К сожалению это не
К сожалению это не срабатывает.
У меня на компе есть net.lo в runlevel boot, net.eth0 в default и net.ppp0 в default.
Так вот при рестарте net.ppp0 все сетевые сервисы останаливаются, а это не приемлемо. При этом net.lo и net.eth0 остаются запущенными.
GNU (GNU is not UNIX)
nemila написал(а): Возможно
Да это самое оно.
# Do we allow any started service in the runlevel to satisfy the depedency
# or do we want all of them regardless of state? For example, if net.eth0
# and net.eth1 are in the default runlevel then with rc_depend_strict="NO"
# both will be started, but services that depend on 'net' will work if either
# one comes up. With rc_depend_strict="YES" we would require them both to
# come up.
Позволим ли мы одной запущенной службе удовлетворять зависимости или все они должны быть запущены?
Например, если net.eth0 и net.eth1 находятся в default runlevel, то с rc_depend_strict="NO" они оба будут запускаться, но сервисы, которые зависят от 'net' будут работать если хоть один них будет запущен. С rc_depend_strict="YES" нужно чтобы они оба были запущены для удовлетворения зависимости 'net'.
ps. очень вольный перевод :)
GNU (GNU is not UNIX)