[gelöst] dnsmasq: Hängt bei Start über WebIf, OK bei Start über Cmdline

udosw

Aktives Mitglied
Mitglied seit
20 Mrz 2004
Beiträge
1,114
Punkte für Reaktionen
0
Punkte
36
Fritzbox 7270, PHONE Labor-Version 54.04.80-16376
Freetz-Trunk, Rev. 4301
(Fehler war auch bei offizieller .80 FW vorhanden)

Wenn ich dnsmasq über /etc/init.d/rc.dnsmasq start anwerfe, funktioniert es einwandfrei.

Starte ich dnsmasq über die Weboberfläche von freetz, hängt die Weboberfläche (und ssh-Zugriff) der Box sich auf. Auch ein vorhergehendes manuelles Stoppen des multid bringt keine Abhilfe.

Ich habe als als Notbehelf den Autostart abgeschaltet und starte dnsmasq nachträglich über die Kommandozeile.

Hier die Ausgabe von sh -x /etc/init.d/rc.dnsmasq start:
Code:
+ DAEMON=dnsmasq
+ DAEMON_LONG_NAME=dnsmasq
+ DAEMON_USER=nobody
+ DAEMON_GROUP=nobody
+ PID_FILE=/var/run/dnsmasq/dnsmasq.pid
+ . /etc/init.d/modlibrc
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib
+ [ -n dnsmasq ]
+ [ ! -r /mod/etc/conf/dnsmasq.cfg ]
+ modlib_loadconfig
+ local CONF_FILE=/mod/etc/conf/dnsmasq.cfg
+ [ -r /mod/etc/conf/dnsmasq.cfg ]
+ . /mod/etc/conf/dnsmasq.cfg
+ export DNSMASQ_BOGUSPRIV=yes
+ export DNSMASQ_DHCP=no
+ export DNSMASQ_DHCP_BOOT=no
+ export DNSMASQ_DHCP_BOOTFILE=
+ export DNSMASQ_DHCP_RANGE=192.168.178.11,192.168.178.200,12h
+ export DNSMASQ_DNS_PORT=53
+ export DNSMASQ_DOMAIN=fritz.fonwlan.box
+ export DNSMASQ_ENABLED=no
+ export DNSMASQ_ETHERS=no
+ export DNSMASQ_OPTIONS=
+ export DNSMASQ_TFTP=no
+ export DNSMASQ_TFTP_TFTPROOT=
+ pidof -s multid
+ PID_MULTID=950
+ [ ! -z 950 ]
+ xargs -0
+ MULTID=multid -t
+ start
+ local lease
+ modlib_addgroup nobody
+ local group=nobody
+ shift
+ grep -q ^nobody: /etc/group
+ return 0
+ modlib_adduser nobody -s /bin/false -D -S -H -G nobody -g nobody
+ local user=nobody
+ shift
+ grep -q ^nobody: /etc/passwd
+ return 0
+ mkdir -p /var/run/dnsmasq
+ chown nobody:nobody /var/run/dnsmasq
+ [ -x /tmp/flash/dnsmasq_conf ]
+ /mod/etc/default.dnsmasq/dnsmasq_conf
+ [ -r /tmp/flash/dnsmasq/dnsmasq.extra ]
+ echo -n Starting dnsmasq...
Starting dnsmasq...+ [  != nomultid ]
+ multid -s
+ OPTIONS=--pid-file=/var/run/dnsmasq/dnsmasq.pid 
+ [ 53 ]
+ OPTIONS=--pid-file=/var/run/dnsmasq/dnsmasq.pid  -p "53"
+ eval dnsmasq --pid-file=/var/run/dnsmasq/dnsmasq.pid  -p "53"
+ dnsmasq --pid-file=/var/run/dnsmasq/dnsmasq.pid -p 53
+ exitval=0
+ [  != nomultid ]
+ multid -t
+ [ -f /var/tmp/avm-resolv.conf -a ! -L /var/tmp/avm-resolv.conf ]
+ mv /var/tmp/avm-resolv.conf /var/tmp/resolv.conf
+ ln -s resolv.conf /var/tmp/avm-resolv.conf
+ [ ! -L /var/flash/multid.leases -a no = yes ]
+ [ -f /var/tmp/multid.leases ]
+ [ -f /var/tmp/dnsmasq.leases ]
+ [ 0 -eq 0 ]
+ echo done.
done.
+ exit 0
IMHO scheint da alles in Ordnung zu sein. Ich habe überlegt, ob es Unterschiede zwischen dem Starten per Cmdline und dem WebIf geben kann. Ein Starten (und Debuggen) über cgi-bin/exec.cgi ist mir nicht gelungen, weil ich nicht weiß, wie ich die Parameter übergeben könnte.
 
Hi.
Ich denke, dass es an einem fehlden ". /var/env.cache" im Startskript liegen könnte. Sowas hatten wir beim AVM-Firewall Package auch gerade.

MfG Oliver
 
An welche Stelle des Skripts müsste das denn?
 
Danke, Super! Funktioniert einwandfrei mit env.cache. Ich habe das am Anfang des Start-Skripts von dnsmasq eingefügt:
Code:
[...]
PID_FILE=/var/run/$DAEMON/$DAEMON.pid

. /etc/init.d/modlibrc
. /var/env.cache

PID_MULTID=$(pidof -s multid)
[...]
Nun klappt der Start über das WebIf.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.