[РЕШЕНО ЧАСТИЧНО] net.ppp и зависимость служб, Падают службы при падении net.ppp1

Через /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

JIyHoXoD написал(а):
/etc/init.d/net.ppp1 действительно симлинк на net.lo. Почитав хэндбук понял что варианта два:
1. сделать net.ppp1 не симлинком, а копией net.lo и вычистить все provide'ы. Но их там много и не совсем понятно что именно чистить.
2. Отредактировать все init-скрипты и из них вычистить need net и use net. Тоже какой-то некрасивый вариант с хирургией
Посему вопрос - как организовать автоматичиский контроль за состоянием запущенных служб и их рестарт при падении?

Возможно поможет в /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 написал(а): Возможно

nemila написал(а):
Возможно поможет в /etc/rc.conf
rc_depend_strict="NO"

Да это самое оно.
# 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)

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

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