Отслеживание
адресов,
добавляемых
в интерфейсы или
удаляемых из них, и вызов для них сценариев
для включения или отключения интерфейса
Синтаксис:
ifwatchd
[-hiqv]
[-A
сценарий_подключения] [-c
сценарий_наличия_сигнала]
[-D
сценарий_отключения] [-d
сценарий_отключенного_интерфейса]
[-n
сценарий_отсутствия_сигнала] [-u
сценарий_включенного_интерфейса]
имя_интерфейса
Поддерживаемые
платформы:
Neutrino
Опции:
-A
сценарий_подключения
Указать
команду,
вызываемую при подключении
новых интерфейсов (например, карт
PCMCIA).
-c
сценарий_наличия_сигнала
Указать
команду,
вызываемую при изменении
статуса сигнала "no carrier" (отсутствие)
на "carrier" (наличие).
-D
сценарий_отключения
Указать
команду,
вызываемую при отключении
интерфейса (например, при удалении карты
PCMCIA).
-d
сценарий_отключенного_интерфейса
Указать
команду,
вызываемую при возникновении
событий "интерфейс отключен" (или
при удалении адреса из интерфейса).
-h
Отобразить
краткую
информацию.
-i
Запретить
вызов
сценария включенного интерфейса
при запуске для всех наблюдаемых
интерфейсов, уже отмеченных как
включенные. Если эта опция не указана,
то утилита ifwatchd
проверяет при запуске наличие метки
"включенный" для всех наблюдаемых
интерфейсов и при ее наличии вызывает
сценарий включенного интерфейса с
соответствующими параметрами.
Поскольку
утилита
ifwatchd
обычно запускается в конце последовательности
системной загрузки, то возможна ситуация,
когда на момент ее запуска уже выполнено
включение некоторых наблюдаемых
интерфейсов, но соответствующие сценарии
включенного интерфейса не вызваны. В
связи с этим и в целях упрощения сценариев
утилита ifwatchd
вызывает их при запуске по умолчанию.
-n
сценарий_отсутствия_сигнала
Указать
команду,
вызываемую при изменении
статуса сигнала с "carrier" (наличие)
на "no carrier" (отсутствие).
-q
Вывести
краткую
информацию, не регистрировать
сообщения, не связанные с ошибками, в
slogger.
-u
сценарий_включенного_интерфейса
Указать
команду,
вызываемую при возникновении
событий "интерфейс включен" (или
при добавлении адреса в интерфейс).
-v
Выполнить
запуск
в режиме отладки с выводом
расширенной информации и не отключаться
от управляющего терминала. Вывести
расширенные сообщения о выполнении и
отметить ошибки, игнорируемые при
функционировании в нормальном режиме.
Не используйте эту опцию в /etc/rc.conf.
имя_интерфейса
Имя
наблюдаемого
интерфейса. Можно указать
несколько интерфейсов. События для
других интерфейсов игнорируются.
Описание:
Утилита
ifwatchd
используется для обнаружения изменений
адресов в динамических интерфейсах
(например, интерфейсах PPP) и для обнаружения
изменения статуса сигнала в статических
интерфейсах. Иногда эти интерфейсы
работают вместе с программой-сервисом,
которая обеспечивает выполнение всех
требуемых сценариев (например, pppd
или isdnd).
Однако
также возможно и полностью
автономное функционирование этих
интерфейсов (например, pppoe).
Утилита
ifwatchd
предоставляет общий способ наблюдения
за подобными изменениями. Она контролирует
сокет маршрутизации и интерпретирует
сообщения RTM_NEWADDR (адрес добавлен),
RTM_DELADDR (адрес удален) и RTM_IFINFO (обнаружен
сигнал или сигнал потерян). Специальных
полномочий для этого не требуется.
Сценарии, вызываемые для событий
включенного или отключенного интерфейса
выполняются с использованием того же
идентификатора пользователя, что и для
ifwatchd.
Примеры:
#
ifwatchd
-u /etc/ppp/ip-up -d /etc/ppp/ip-down pppoe0
Если
интерфейс
pppoe0
является основным подключением к сети
Интернет, то сценарии включенного/отключенного
интерфейса используются, как правило,
для добавления и удаления маршрута по
умолчанию. Пример подобного сценария
включенного интерфейса:
#!
/bin/sh
/sbin/route
add
default $5
Как
описано
далее, пятый параметр командной
строки содержит адрес удаленной стороны
для канала pppoe.
Пример
соответствующего сценария для
отключенного ip:
#!
/bin/sh
/sbin/route
delete
default $5
Примечание.
Выполнение
этого сценария нецелесообразно
в случае, если конфигурация интерфейса
pppoe0
предполагает подключение только по
запросу (путем установки флага link1), но
интерфейс эффективно используется для
всех постоянных соединений. Следует
использовать
!
/sbin/route
add default -iface 0.0.0.1
в
файле
/etc/ifconfig.pppoe0
при подключении по запросу.
