Eu não usei systemd-networkd
especificamente antes, mas systemd
definitivamente deve ser capaz de resolver isso ajustando o arquivo systemd
service que systemd-networkd
usa.
Encontrando arquivo de serviço
Se você executar:
systemctl status systemd-networkd
Você deve obter uma saída semelhante a essa (usando systemd-modules-load.service
como exemplo, porque não tenho systemd-networkd
):
systemd-modules-load.service - Load Kernel Modules
Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
Active: failed (Result: exit-code) since So 2013-08-25 11:48:13 CEST; 32s ago
Docs: man:systemd-modules-load.service(8).
man:modules-load.d(5)
Process: 15630 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
A segunda linha informa a localização do arquivo de serviço (no exemplo é /usr/lib/systemd/system/systemd-modules-load.service
). O arquivo de serviço determina quando na hierarquia systemd
as coisas devem ser iniciadas.
Modificando arquivo de serviço
Se você abrir este arquivo em um editor de texto, há três seções muito importantes:
-
[Unit]
-
[Service]
-
[Install]
A seção [Unit]
pode conter as diretivas After
e Requires
. After
força o serviço a iniciar depois de outro systemd
unidade, Requires
força outra unidade systemd
a ser iniciada se ela ainda não estiver ativada (mas não forçar uma ordenação).
Portanto, se você localizar o arquivo systemd-networkd
service, determine qual unidade deseja que systemd-networkd
inicie depois e adicione à seção [Unit]
a ser definida:
[Unit]
...
Requires=[unit name]
After=[unit name]
Com este método, você pode forçar o serviço systemd-networkd
a iniciar após qualquer outra unidade.
Outras preocupações
Você diz que suas montagens de rede falham, se você estiver montando o via /etc/fstab
suas entradas contêm a opção _netdev
?