Hi,
ich habe ein kleines Problem beim Starten von Netzwerkdiensten.
Hintergrund:
Auf meinem Pi4 läuft piHole, das ja als DNS-Server im Netzwerk dient und damit Port 53 nutzt. Jetzt habe ich parallel einen Bind9 auf dem selben Pi laufen. Dieser nutzt auch Port 53. Damit beide Port 53 nutzen können, habe ich ein virtuelle Netzwerkinterface auf eth0 angelegt. piHole läuft auf eth0 mit IP 172.16.1.26 und Bind9 ist zu erreichen über eth0:1 auf IP 172.16.1.27. Das funktioniert auch soweit.
Jetzt zu meinem Problem: Beim Starten des Pi kann der entsprechende Pi-Hole Dienst (pihole-FTL.service) nicht gestartet werden. Ich muss diesen nach dem Boot des Pi manuell neustarten. Das gleiche gilt für einen Dienst, der mir Wetterdaten aus dem Internet holt und auf einem E-Ink-Display anzeigt. Irgendwie scheint da was in der Reihenfolge der Dienststarts nicht zu passen, so dass der piHole und der Wetterdienst zu früh gestartet werden, wenn das Netzwerk noch nicht bereit ist.
Für eth0 habe ich eine feste IP mittel /etc/dhcpcd.conf vergeben.
Das virtuelle Interface eth0:1 lege ich über einen systemd-Dienst an:
[Unit]
Description=Add a second IPv4 address to eth0
Wants=network-online.target
After=network.target network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/ifconfig eth0:1 172.16.1.27/24
ExecStart=/usr/sbin/route add default gw 172.16.1.1 eth0:1
ExecStop=/usr/bin/ip addr flush dev eth0:1
[Install]
WantedBy=multi-user.target
Alles anzeigen
Auch den Wetterdienst starte ich per systemd:
[Unit]
Description=display weather information
Wants=network-online.target
After=network.target network-online.target
[Service]
User=focmb
Group=focmb
WorkingDirectory=/home/focmb/display
ExecStartPre=/bin/sleep 30
ExecStart=python3 /home/focmb/display/weather.py -m lightmode
ExecStopPost= python3 /home/focmb/display/clear.py
[Install]
WantedBy=multi-user.target
Alles anzeigen
Und hier noch der pihole-Dienst:
[Unit]
Documentation=mansystemd-sysv-generator(8)
SourcePath=/etc/init.d/pihole-FTL
Description=LSB: pihole-FTL daemon
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
After=remote-fs.target
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
SuccessExitStatus=5 6
ExecStart=/etc/init.d/pihole-FTL start
ExecStop=/etc/init.d/pihole-FTL stop
ExecReload=/etc/init.d/pihole-FTL reload
Alles anzeigen
Hat jemand eine Idee, wie ich die richtige Reihenfolge oder die entsprechenden Abhängigkeiten in die Dienste bringe? Es soll erst das normale netzwerkgestartet werden, danach soll das virtuelle Interface angelegt werden. Wenn das fertig ist, sollen piHole und der Wetterdienst gestartet werden.