> > Как узнать, что pppd закончил соединение с провайдером и
> > адреса уже получены? Вручную - нечего делать, ifconfig,
> > route, /var/spool/messages можно посмотреть в
> > конце-концов. А вот в bash-скрипт как, не перелопачивая
> > выдачу этих програм?
RTFM! ;-)
> Можно все действия, выполняемые по соединении,
> запрограммировать в /etc/ppp/ip-up.
Ответ правильный ;-)
После успешного установления и окончания соединения pppd вызывает, соответственно,
/etc/ppp/ip-up и /etc/ppp/ip-down, а те -
/etc/ppp/ip-up.local и /etc/ppp/ip-down.local (разумеется, в случае их наличия).
# cd /etc/ppp
# ls -l up-down ip-up.local ip-down.local
lrwxrwxrwx 1 root root ip-down.local -> up-down
lrwxrwxrwx 1 root root ip-up.local -> up-down
-rwx1 root root up-down
# cat up-down
#!/bin/bash
#
# Обслуживание PPP-соединений
#
arg0="${0##*/}"; arg0="${arg0%.local}"
if="$1"; tty="$2"; speed="$3"; lip="$4"; rip="$5"; shift 5
#
case "$tty" in
/*) tty=${tty##*/} ;;
esac
#
case "$arg0" in
ip-up*) cmd=add ;;
ip-down*) cmd=del ;;
esac
#
... далее - в зависимости от изощрённости автора ;-) ...
> А вместо того, чтобы разбирать вывод ifconfig, netstat, ps
> etc, проще разбирать "первоисточники" из /proc :-)
Ответ неправильный ;-)
Если авторы pppd умудряются с изменением версии вносить "косметические изменения"
даже в имена переменных окружения, передаваемых
под ip-up и ip-down, то "оголённые концы" из /proc тем более могут подвергнуться
ревизии, причём выяснится это, как водится, в самый
неподходящий момент. Поэтому лучше пользоваться хорошо документированными интерфейсами.
= Дмитрий =
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru