Estoy tratando de configurar un nuevo servicio (bajo Debian Jessie) que necesita configurar algunos montajes donde se almacena la configuración de red y, por lo tanto, este servicio debe completarse antes de que se inicie networking.service.
Intenté lo siguiente:
[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
Utilizando systemd-analyze plotpuedo ver que mi servicio comienza, pero networking.servicecomienza unos 3 segundos antes:
Aparentemente mi configuración está mal, pero me está costando encontrar el problema ... Cualquier ayuda es muy apreciada ...
Actualizar
Actualmente lo resolví cambiando la configuración del servicio para comenzar antes en local-fs.targetlugar 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
Aún así, me gustaría entender por qué mi primera configuración no funcionó como se esperaba ...
/etc/network/interfacestiene referencias a ip-upscripts que residen en otra partición. Esa partición está montada por un script complejo /opt/intermodul-mounts/start.shque debe ejecutarse antes de configurar la red. Actualmente, los ip-upscripts no se inician efectivamente porque no son accesibles en el momento del arranque. La ejecución service networking restartposterior muestra todas las interfaces correctamente.
