Как я сразу делаю возврат 'ifup wlan0', если никакой арендный договор dhcp не может быть получен?

У меня есть маленькая беспроводная встроенная система на основе Ubuntu 16.04. Если беспроводной интерфейс неправильно настроен, или точка доступа снижается, ifup wlan0 никогда не будет заканчиваться потому что dhclient не делает самого daemonize, пока он не получит арендный договор. Это - проблема потому что ifdown wlan0 зависает из-за блокировки ifup все еще содержит:

ifdown: waiting for lock on /run/network/ifstate.wlan0

Как я решаю это?

  • Опция 1: pkill -f 'ifup .*wlan0'; ifdown wlan0

Это сыро, но если я должен сделать это, я буду. У меня было бы лучшее решение.

  • Опция 2: dhclient поддержки a -nw, nowait, опция, которая говорит это daemonize сразу, но ifup не использует его, и кажется что dhclient команда трудно кодируется в ifup через названный исходный файл inet.defn:

.

$ apt-get source ifupdown
$ grep -n 'dhclient -1' ifupdown-*/inet.defn | head -1
97:    /sbin/dhclient -1 -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
  • Опция 3: существует ли способ заставить dhcp управляться состоянием от wpa_supplicant? Так, dhclient не работал бы, пока wpa_supplicant не завершает ассоциацию к точке доступа.

Дополнительная информация:

/etc/network/interfaces:

auto lo
iface lo inet loopback

# ifplugd configuration
mapping hotplug
script grep
map eth0
map wlan0

auto eth0
iface eth0 inet dhcp

auto wlan0
iface wlan0 inet dhcp
  wpa-driver wext
  wpa-conf /etc/wpa_supplicant.conf

/etc/wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant

network={
   ssid="AccessPoint"
   scan_ssid=1
   proto=WPA RSN
   key_mgmt=WPA-PSK
   pairwise=CCMP TKIP
   group=CCMP TKIP
   psk="passphrase"
   priority=10
}
network={
   key_mgmt=NONE
   priority=0
   disabled=1
}
1
задан 14 February 2017 в 23:43

1 ответ

У меня были та же проблема некоторое время и выполнение простого:

$ systemctl enable netctl.service
$ systemctl start netctl.service

Закрепил все на моей ubuntu 17.04.

Hope, которой это помогает.

0
ответ дан 8 December 2019 в 06:36

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

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