не отрабатывает postup() для ppp
llyll 21 марта, 2010 - 22:17
собственно проблема. 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
с содержимым типа:
Может чего получится из этой затеи?
пробовал от безысходности и
пробовал от безысходности и этот вариант, но поскольку опции для ppp0 интерфейса задаются в самом conf.d/net (а те что указаны в /etc/ppp/ соответственно игнорируются, шансов что будут выполняться ip-up.d/* при запуске из init.d/net.ppp0 мало). В общем у меня он тоже не отрабатывается даже в вашем варианте.
зы. с моей стороны крайне непрофессионально заниматься гаданием на кофейной гуще, но осилить исходники(того же init.d/net) я пока не в силах, а хочется чтобы работало уже сейчас
добавление updetach при
добавление updetach при поднятии интерфейса показывает
Разница в последней строчке где явно указывается полученный ip (да и сам процесс старта интерфейса теперь подлинее), раньше последняя строчка выглядела:
к сожалению выполняться 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
:
0. Чтобы не заниматься гаданием на кофейной гуще: запускаем, скажем, через минуту вручную, смотрим результат.
1. Если все нормально, делаем
man sleep
, правим конфиг.2. Если нет, увеличиваем паузу, до, скажем, 2 минут, смотрим результат.