J'essaie de mettre en place un nouveau service (sous Debian Jessie) qui doit mettre en place des montages où la configuration réseau est stockée et donc ce service doit se terminer avant le réseautage.service démarre.
J'ai essayé ce qui suit:
[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
En utilisant systemd-analyze plot
je peux voir que mon service démarre, mais networking.service
démarre environ 3 secondes plus tôt:
Apparemment, ma configuration est erronée, mais j'ai du mal à trouver le problème ... Toute aide grandement appréciée ..
Mise à jour
Je l'ai actuellement résolu en modifiant la configuration du service pour démarrer avant local-fs.target
au lieu de 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
Je voudrais quand même comprendre pourquoi ma première configuration n'a pas fonctionné comme prévu ...?
/etc/network/interfaces
a des références à desip-up
scripts qui résident dans une autre partition. Cette partition est montée par un script complexe/opt/intermodul-mounts/start.sh
qui doit être exécuté avant la mise en réseau. Actuellement, lesip-up
scripts ne démarrent pas efficacement car ils ne sont pas accessibles au démarrage. L'exécutionservice networking restart
ultérieure affiche correctement toutes les interfaces.Réponses:
Vous souhaitez utiliser
network-pre.target
si vous souhaitez configurer quelque chose avant le démarrage du réseauVous devez les mettre sous la
[Unit]
section:Référence
la source
systemctl is-enabled <unit>
est toujoursstatic
. Bien sûr, je ne peux pas l'activer car il n'y en a pasWantedBy=
. Après tout, que veut-il? C'est quelque chose qui fait une configuration avant que le réseau ne se charge.Before=network-pre.target
etWants=network-pre.target
et pour ce que[Install]
nous avons faitWantedBy=network.target
. La dernière section l'a obligée à être mise en réseau, la première l'a mise en ordre. Mais c'était une douleurComme fait dans Debian Jessie, le paquet netfilter-persistent (permettant de charger les règles iptables avant que le réseau ne soit en place) a un netfilter-persistent.service qui ressemble à:
la source
shutdown.target
?!L'erreur est simple et l'une des principales choses que je mélange toujours: vous mélangez
Before
etRequiredBy
. Ça ne va pas ensemble. Les autres ont raison sur la cible.la source
Faire quelque chose dans ce sens garantira que cet appareil a fonctionné avant le réseau, mais après que la plupart des autres configurations importantes se sont produites.
la source