Próbuję skonfigurować nową usługę (pod Debian Jessie), która musi skonfigurować niektóre instalacje, w których przechowywana jest konfiguracja sieci, a zatem ta usługa musi zostać ukończona przed uruchomieniem usługi networking.service.
Próbowałem następujące:
[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
Za pomocą systemd-analyze plotWidzę, że moja usługa się uruchamia, ale networking.servicezaczyna się około 3 sekund wcześniej:
Najwyraźniej moja konfiguracja jest nieprawidłowa, ale trudno mi znaleźć problem ... Każda pomoc bardzo doceniona ..
Aktualizacja
I obecnie rozwiązany przez zmianę config usług zacząć przed local-fs.targetzamiast 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
Chciałbym jednak zrozumieć, dlaczego moja pierwsza konfiguracja nie działała zgodnie z oczekiwaniami ...?
/etc/network/interfacesma odniesienia do ip-upskryptów znajdujących się na innej partycji. Ta partycja jest montowana za pomocą skomplikowanego skryptu, /opt/intermodul-mounts/start.shktóry należy uruchomić przed skonfigurowaniem sieci. Obecnie ip-upskrypty faktycznie się nie uruchamiają, ponieważ nie są dostępne w czasie uruchamiania. Uruchamianie service networking restartpotem przywołuje wszystkich interfejsów poprawnie.
