Я работаю над гаджетом Linux.
Я хочу, чтобы он получал DHCP, если я подключу сетевой кабель после того, как он уже загрузился, или если сетевой кабель отключен и подключен повторно.
Одним из решений является запуск такого скрипта (который работает, кстати):
#!/bin/bash
NET_STATUS='different'
while true
do
NEW_NET_STATUS=`ifconfig | grep RUNNING | grep -v LOOPBACK`
if [ "${NEW_NET_STATUS}" = "${NET_STATUS}" ]
then
echo "no change"
sleep 1
continue
fi
NET_STATUS=${NEW_NET_STATUS}
if [ "${NET_STATUS}" ]
then
echo "cable plugged in"
else
echo "cable unplugged"
fi
sleep 1
done
Однако в глубине моего маленького пальца чувствуется чувство, что мне кажется, что есть лучший способ справиться с событиями горячего подключения для кабеля Ethernet.
ifplugd
иnetplugd
кажутся необслуживаемыми. Однако этот похожий вопрос выглядит так, как будто он имеет хороший (простой) ответ с использованием правил udev - никакого дополнительного пакета не требуется. serverfault.com/a/312296/275255auto
наallow-hotplug
вinterfaces
.Ответы:
netplug
netplug
это решение, с которым я пошел.ifplugd
может работать так же хорошо.Монтаж
Конфигурация интерфейса
Конфигурация события
тестирование
источник
ifplugd очень хорошо справляется с этой ситуацией:
источник
netplug
, и я пошел с этим вместо этого. Спасибо!netplugd
включенным я обнаружил, что должен был удалитьauto <interface>
из/etc/network/interfaces
. Если нет, мне пришлось подключить кабель Ethernet, вынуть его и подключить снова, прежде чем я получил IP-адрес от DHCP. После удаления этой строки я получаю IP-адрес от DHCP при первом событии модуля или при загрузке, если кабель уже подключен (IP при загрузке работал с или без линии, удаленной, когдаifplugd
была включена).Я предложил бы использовать ifplugd над Netplugd , как она работает лучше , и активно поддерживается.
источник
Используя это мое программное обеспечение для настройки сети, это очень просто.
http://code.google.com/p/badvpn/wiki/NCD
Следующая программа NCD сделает. Также показано, как вы можете расширить конфигурацию, в этом случае запустив что-то, когда сеть идет вверх / вниз.
Обратите внимание, что это будет не только обрабатывать сетевой кабель, подключенный или отключенный, но также и сам сетевой интерфейс, появляющийся и исчезающий (полезно, если это USB).
Преимущество использования NCD по сравнению с другими программами, такими как ifplugd, заключается в том, что его дизайн обеспечивает большую гибкость. Он в основном позволяет программировать вашу собственную конфигурацию сети, в отличие от ограниченного набора жестко закодированных возможностей.
ОБНОВЛЕНИЕ: я сделал пакеты Ubuntu для BadVPN и NCD. Я также обновил вики с инструкциями по установке и использованию для Ubuntu: http://code.google.com/p/badvpn/wiki/NCD#Running_it
источник