Sto cercando di impostare un nuovo servizio (sotto Debian Jessie) che deve impostare alcuni montaggi in cui è memorizzata la configurazione di rete e quindi questo servizio deve essere completato prima dell'avvio di network.service.
Ho provato quanto segue:
[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
Utilizzando systemd-analyze plot
posso vedere che il mio servizio inizia, ma networking.service
inizia circa 3 secondi prima:
Apparentemente la mia configurazione è sbagliata, ma ho difficoltà a trovare il problema ... Qualsiasi aiuto è stato molto apprezzato ...
Aggiornare
Al momento l'ho risolto cambiando la configurazione del servizio per iniziare prima local-fs.target
invece di 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
Tuttavia, vorrei capire perché la mia prima configurazione non ha funzionato come previsto ...?
/etc/network/interfaces
ha riferimenti a ip-up
script che risiedono in un'altra partizione. Quella partizione è montata da uno script complesso /opt/intermodul-mounts/start.sh
che deve essere eseguito prima di configurare la rete. Attualmente, gli ip-up
script non si avviano effettivamente perché non sono accessibili al momento dell'avvio. L'esecuzione service networking restart
successiva mostra correttamente tutte le interfacce.