Ich versuche, einen neuen Dienst (unter Debian Jessie) einzurichten, der einige Mounts einrichten muss, in denen die Netzwerkkonfiguration gespeichert ist. Daher muss dieser Dienst abgeschlossen sein, bevor network.service gestartet wird.
Ich habe folgendes versucht:
[Unit]
Description=mount/repair remaining filesystems (all persistent fs beyond "/")
#Before=network-pre.target
Before=networking.service
[Service]
Type=oneshot
ExecStart=/opt/intermodul-mounts/start.sh
TimeoutSec=0
RemainAfterExit=yes
[Install]
RequiredBy=networking.service
Mit systemd-analyze plotkann ich sehen, dass mein Dienst startet, aber networking.serviceungefähr 3 Sekunden früher startet:
Anscheinend ist meine Konfiguration falsch, aber es fällt mir schwer, das Problem zu finden ... Jede Hilfe wird sehr geschätzt.
Aktualisieren
Ich habe es derzeit gelöst, indem ich die Dienstkonfiguration so geändert habe, dass sie vorher startet, local-fs.targetanstatt networking.service:
[Unit]
DefaultDependencies=no
Description=mount/repair remaining filesystems (all persistent fs beyond "/")
Before=local-fs.target
[Service]
Type=oneshot
ExecStart=/opt/intermodul-mounts/start.sh
TimeoutSec=0
RemainAfterExit=yes
[Install]
RequiredBy=local-fs.target
Trotzdem möchte ich verstehen, warum meine erste Konfiguration nicht wie erwartet funktioniert hat ...?
/etc/network/interfaceshat Verweise auf ip-upSkripte, die sich in einer anderen Partition befinden. Diese Partition wird von einem komplexen Skript bereitgestellt /opt/intermodul-mounts/start.sh, das ausgeführt werden muss , bevor das Netzwerk eingerichtet wird. Derzeit werden die ip-upSkripte effektiv nicht gestartet, da sie beim Booten nicht verfügbar sind. Wenn Sie service networking restartdanach ausgeführt werden, werden alle Schnittstellen korrekt aufgerufen.
