Перезапуск служб, при изменении состояния сетевых интерфейсов

Привет,
Ситуация следующая:
- есть 2 сетевых интерфейсов;
- есть dhcpd\sshd;
службы должны работать на обоих интерфейсах, но возможно ситуация, что один из интерфейсов может быть без сетевого адреса или не активным по какой-либо иной причине. В связи с чем в rc.conf:

rc_depend_strict="NO"

и служба запуститься, как и должно быть, даже если запуститься хотя бы один интерфейс.
Вопрос:
Есть ли родной способ автоматического перезапуска службы при запуске не работавшего до этого сетевого интерфейса?

PS: я честно изучал руководство openrc, но не нашёл подобной возможности..
стоит городить костыль, или я таки плохо искал?

Может вам нужно postup() и

Может вам нужно postup() и postdown()?
Например вот так:

postup() {
	rc-service dhcpd restart
	rc-service sshd restart
}

Смотреть /usr/share/doc/openrc-версия/net.example.bz2, там это раписано

ReinForce написал(а): Может

ReinForce написал(а):
Может вам нужно postup() и postdown()?
Например вот так:

postup() {
	rc-service dhcpd restart
	rc-service sshd restart
}

Смотреть /usr/share/doc/openrc-версия/net.example.bz2, там это раписано

Муть ^^

rc_depend_* rc_need_ rc_after , вобщем ман .

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

я поступил врварски, пошел в

я поступил врварски, пошел в /etc/init.d/sshd
и сделал чтоб выглядело так:

depend() {
	use logger dns
#	need net
}

Теперь не страшно если лежит один из интерфейсов, или вовсе все.. (если ssh вешается на 0.0.0.0)

с dhcpd тоже смое. все как часики работает)

теперь купи вазелин и спили

теперь купи вазелин и спили мушку.
событие наступит в течении 1 года

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Tamahome написал(а): Теперь

Tamahome написал(а):
Теперь не страшно если лежит один из интерфейсов, или вовсе все.. (если ssh вешается на 0.0.0.0)

с dhcpd тоже смое. все как часики работает)

rc_depend_strict="NO" && rc_provide="net" в /etc/rc.conf

P.S. Господи, а я думал только я изобретаю феерические костыли, когда не читаю маны. А оказывается не только, ох, не только...

Нейтральность - высшее достижение сознания!

Так, погодите. Я думал и про

Так, погодите. Я думал и про postup()\postdown() и держу их в голове.
Для начала хотел выяснить, можно ли это решить с помощью openrc.
Уважаемый slepnoga, согласно этому руководству:
предположим, что есть служба test
"use foo" - запустит test после foo, при наличии оной. При отсутствии foo, test просто запустится. В том случае, если foo есть, но что-то препятствует её запуску, то test так же нормально стартует. Если foo запустится после test, то test не узнает об этом, и не будет использовать foo.
или я не прав?

rc_after не подходит же.

У меня тоже не страшно, если лежит один из интерфейсов ( это просто можно сделать через rc.conf ), но ситуация немного иная:
допустим, есть два интерфейса:
1-й настраивается статически, 2-й - dhcp
необходим доступ по ssh через оба интерфейса. С 1-м проблем нет, он всегда включается. Второй же, при проблеме с dhcp сервером (за который я не отвечаю), может быть неактивным. Сейчас зависимость ssh от net.* не строгая, и на первом всегда есть доступ, но если 2-й начнёт работать после запуска sshd, то на нём sshd слушать не будет.

как в принципе решит эту проблему, я представляю. Но может есть стандартное средство.
Как вы считаете, должен ли openrc предоставлять такой функционал?

Всё что вам надо УЖЕ есть в

Всё что вам надо УЖЕ есть в openrc. Вы можете как угодно кастомизировать зависимости. Реально работающий у меня пример:

# First of all - we need OSPF before initialize connection to Internet
rc_net_ppp0_need="ospfd"
rc_net_ppp1_need="ospfd"

# Both of ppp0 and ppp1 gave us Internet access
rc_net_ppp0_provide="internet"
rc_net_ppp1_provide="internet"

# OpenVPN and NTP need Internet to work properly
rc_openvpn_home_need="internet"
rc_ntp_client_need="internet"
rc_ntpd_need="internet"

За подробностями прошу в ман.

Нейтральность - высшее достижение сознания!

Спасибо, это всё прекрасно, и

Спасибо, это всё прекрасно, и у меня всё хорошо с зависимостями. Но, ещё раз, приведу конкретику:
есть eth0 и eth1, один из которых может при загрузке сервера не получить адрес.
sshd должен работать всегда, на всех доступных интерфейсах. Если при запуске сервера eth0 не получил адрес, sshd запускается на всех остальных работающих интерфейсах (скажем eth1, lo). Через какое-то время eth0 получает адрес, но sshd уже не будет слушать на этом адресе, пока не будет перезапущен. Вот только это проверил. Говорю именно об этом.
Я не исключаю, что могу быть слеп, но, честно, читал руководство на эту тему не единожды.

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

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