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 plot
Widzę, że moja usługa się uruchamia, ale networking.service
zaczyna 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.target
zamiast 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/interfaces
ma odniesienia do ip-up
skryptów znajdujących się na innej partycji. Ta partycja jest montowana za pomocą skomplikowanego skryptu, /opt/intermodul-mounts/start.sh
który należy uruchomić przed skonfigurowaniem sieci. Obecnie ip-up
skrypty faktycznie się nie uruchamiają, ponieważ nie są dostępne w czasie uruchamiania. Uruchamianie service networking restart
potem przywołuje wszystkich interfejsów poprawnie.