udhcpd.service が開始されましたが、udhcpd プロセスが実行されていません。

udhcpd.service が開始されましたが、udhcpd プロセスが実行されていません。

私のwlan0にhostapd設定しましたudhcpd。起動hostapdして実行した後、他のデバイスのssidは表示されますが、dhcpアドレスは表示されません。まあ、udhcpdが実行されておらず、次のように主張するのでできませんsystemctl status udhcpd.service

● udhcpd.service - LSB: Start busybox udhcpd at boot time
   Loaded: loaded (/etc/init.d/udhcpd)
   Active: active (exited) since Thu 2017-03-16 14:24:06 CET; 7min ago
  Process: 611 ExecStart=/etc/init.d/udhcpd start (code=exited, status=0/SUCCESS)

Mar 16 14:24:06 testo-mx6 systemd[1]: Starting LSB: Start busybox udhcpd at boot time...
Mar 16 14:24:06 testo-mx6 systemd[1]: Started LSB: Start busybox udhcpd at boot time.
Mar 16 14:24:06 testo-mx6 udhcpd[611]: Starting very small Busybox based DHCP server: udhcpd.

有効になっていますが、撤回されましたか?なぜやめるの?一連の再起動とインターフェイスのリセットを試みたところ、ついにこのスクリプトが信頼できることがわかりました。

#!/bin/sh
systemctl stop udhcpd.service
systemctl stop hostapd.service
ifdown wlan0
ifup wlan0
sleep 1
systemctl start udhcpd.service

今、すべてが期待どおりに動作します。しかし、このスクリプトを使用するのは不快な回避策です。サービスが期待どおりに開始したいと思います。

私の/etc/udhcpd.conf姿

start           192.168.42.20   #default: 192.168.0.20
end             192.168.42.254  #default: 192.168.0.254
interface       wlan0           #default: eth0
max_leases      2               #default: 254
siaddr          192.168.42.42   #default: 0.0.0.0
sname           foobar          #default: (none)
option  domain  local
option  lease   864000          # 10 days of seconds

そして/etc/network/interfaces

auto wlan0
iface wlan0 inet static
    hostapd /etc/hostapd/hostapd.conf
    address 192.168.42.42
    netmask 255.255.255.0

関連性がある場合/etc/hostapd/hostapd.conf

interface=wlan0
driver=nl80211
channel=1
hw_mode=g
wmm_enabled=0
max_num_sta=1
ssid=foobar

sleep私は開始項目に1つを追加しようとしましたが/etc/init.d/udhcpd(私が見つけた他の記事で役に立つようだった)、役に立たなかった。

答え1

systemd または udhcpd に対して十分に高速ではない Atheros Wi-Fi カードを搭載したシステムでこの問題が発生しました。複数の抽象化層が関係しているため、診断するのは非常に残念です。私が解決した方法は次のとおりです。

export _SYSTEMCTL_SKIP_REDIRECT=1上部近くのLSBヘッダーの後に追加されます。/etc/init.d/udhcpdこれにより、システム抽象化層が無効になり、sysv起動スクリプトをより正常に実行できます。

sleep 30セクションの先頭に追加されました。これにより、DHCPサーバーを起動する前にWi-Fiインターフェイスに少し時間がかかります。それ以外の場合は静かに終了します。start)/etc/init.d/udhcpd

一度操作すると、睡眠時間を下げることができます。

答え2

ブリッジに接続されているatheros Wi-Fiカードにも同じ問題があります。 udhcpd サーバーは br0 で実行されます。 udhcpd は br0 が現れる前に始まるようです。私の解決策は/etc/default/udhcpdを作成することでしたDHCPD_有効化"no"に変更し、br0の/etc/network/interfacesに次のネットワーク設定を追加します。

    post-up /usr/sbin/udhcpd -S /etc/udhcpd.conf

関連情報