& ldquo; Клиентский критический интерфейс eth0 / 2 не работает или не имеет локального адреса link & rdquo; при запуске службы после того, как сеть встала

Я пытаюсь запустить выскочку после того, как убедитесь, что сетевые интерфейсы вставлены.

Это то, что у меня есть сейчас:

start on started network-interface INTERFACE=eth0
stop on runlevel [!2345]

pre-start script
    test -x /usr/sbin/dibbler-client || { stop; exit 0; }
    test -c /dev/null || { stop; exit 0; }

end script

exec /usr/sbin/dibbler-client start 2>&1 > /dev/null

Проблема в том, что dibbler явно началось слишком скоро, так как я получаю Client Critical Interface eth0/2 is down or doesn't have any link-local address.. Есть ли простой способ решить это с помощью событий или мне нужно будет сделать это в pre-start? Я использую только / etc / networking / interfaces и сетевой скрипт для настройки. Поэтому нет сетевого менеджера.

1
задан 7 November 2014 в 19:09

2 ответа

Ваше задание запускается при появлении интерфейса, но оно еще не настроено. Это задание содержит NetworkManager. И NetworkManager не запускает события выскочки. Это проблема.

Я думаю, что самый чистый способ был бы диспетчерским скриптом для NetworkManager.

Создайте файл в /etc/NetworkManager/dispatcher.d/ со следующим содержимым:

#!/bin/bash
# NetworkManager sets those parameters
INTERFACE=$1
ACTION=$2

if [ "$INTERFACE" == "eth0" ] && [ "$ACTION" == "up" ]; then
  # some tests before starting...
  /usr/sbin/dibbler-client start 2>&1 > /dev/null
elif [ "$INTERFACE" == "eth0" ] && [ "$ACTION" == "down" ]; then
  # maybe stop the client...
fi
1
ответ дан 24 May 2018 в 11:19
  • 1
    Я забыл сказать, что им не нужен сетевой менеджер, так как это сервер. Также проблема с dibblers заключается не в том, что интерфейс должен быть настроен, а в том, что должен существовать адрес ссылки. Это должно произойти сразу после появления интерфейса, если ipv6 включен. – vobelic 27 February 2014 в 13:02
  • 2
    NetworkManager испускает события выскочки через /etc/NetworkManager/dispatcher.d/ifupdown. – CameronNemo 2 June 2014 в 22:03

Возможно, вам понадобится следующий запуск:

start on net-device-up IFACE=eth0 ADDRFAM=inet6

, альтернативно, вы можете использовать static-network-up для ожидания всех интерфейсов.

0
ответ дан 24 May 2018 в 11:19

Другие вопросы по тегам:

Похожие вопросы: