не отрабатывает postup() для ppp

собственно проблема. preup отрабатывает отлично(вываливается сообщение об ошибке удаление DR), а вот postup игнорируется, предположительно потому что скрипт init.d/net.ppp0 start отрабатывает раньше чем поднимается интерфейс. А очень бы хотелось поднимать маршруты и регистрировать ip в DynDNS сразу после поднятия интерфейса =\
выдержка из conf.d/net

preup(){
  if [ "${IFACE}" = "ppp0" ]; then
   route del default
  fi
  return 0;
}

postup(){
  if [ "${IFACE}" = "ppp0"]; then
   /usr/sbin/ez-ipupdate -c /etc/ez-ipupdate.conf
   fi
}

версии программ
net-dialup/ppp-2.4.4-r24
net-dialup/pptpd-1.3.4
sys-apps/baselayout-1.12.13

есть идеи решения проблемы? Буду очень признателен.

если добавить к опциям ppp

если добавить к опциям ppp updetach то интерфейс будет подниматься не в фоне. но если он не сможет поднятся, машина будет весьма долго загружаться.

А у меня не хочет predown(), postdown()

В итоге решил проблему, написанием пары скриптиков в /etc/ppp/ip-down.d/.
llyll, в Вашем случае неплохо будет попробовать добавить файлик /etc/ppp/ip-up.d/60-ez-ipupdate.sh
с содержимым типа:

#!/bin/sh
if /etc/init.d/net.ppp0 --quiet status; then
  export IN_BACKGROUND="true"
  /usr/sbin/ez-ipupdate -c /etc/ez-ipupdate.conf
fi

Может чего получится из этой затеи?

пробовал от безысходности и

пробовал от безысходности и этот вариант, но поскольку опции для ppp0 интерфейса задаются в самом conf.d/net (а те что указаны в /etc/ppp/ соответственно игнорируются, шансов что будут выполняться ip-up.d/* при запуске из init.d/net.ppp0 мало). В общем у меня он тоже не отрабатывается даже в вашем варианте.
зы. с моей стороны крайне непрофессионально заниматься гаданием на кофейной гуще, но осилить исходники(того же init.d/net) я пока не в силах, а хочется чтобы работало уже сейчас

добавление updetach при

добавление updetach при поднятии интерфейса показывает

/etc/init.d/net.ppp0 restart
 * Caching service dependencies                                                                                                                       [ ok ]
 * Stopping ppp0
 *   Bringing down ppp0
 *     Stopping pppd on ppp0                                                                                                                                                   
 * Starting ppp0
 *   Bringing up ppp0
 *     ppp
 *       Running pppd ...
 *       ppp0 received address 212.103.98.18

Разница в последней строчке где явно указывается полученный ip (да и сам процесс старта интерфейса теперь подлинее), раньше последняя строчка выглядела:

 *       Backgrounding ...

к сожалению выполняться postup() с этого не стал):

А зачем Вам return 0?

В функции preup()? Не лучше ли будет написать eend $? в конце сей процедуры?

В своём первом посте я "слегка" слукавил, написав, что predown() и postdown() не отрабатывают.
Оне нормально отрабатывают при команде /etc/init.d/net.ppp0 start/restart/stop, но есть некие ньюансы:
Интернет я получаю через pptp-туннель, который в последнее время стал часто рваться.
Перепробовал разные настройки ppp в /etc/conf.d/net - не помогает.
Опция "persist" заставляет демон pppd перезапустить соединение, но при этом
он почему-то игнорирует predown() и postdown(), причём preup() и postup() запускаются вполне успешно ;)
На этом закончу - лень писать :D

:

llyll написал(а):
предположительно потому что скрипт init.d/net.ppp0 start отрабатывает раньше чем поднимается интерфейс

0. Чтобы не заниматься гаданием на кофейной гуще: запускаем, скажем, через минуту вручную, смотрим результат.
1. Если все нормально, делаем man sleep, правим конфиг.
2. Если нет, увеличиваем паузу, до, скажем, 2 минут, смотрим результат.

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

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