Como você está usando /etc/network/interfaces
, você precisará de um serviço systemd para monitorar o status de cada interface. Verifique se você tem /lib/systemd/system/ifup-wait-all-auto.service
(instalado pelo pacote ifupdown
no Ubuntu 15.04). Caso contrário, crie /etc/systemd/system/ifup-wait-all-auto.service
e cole o seguinte:
[Unit]
Description=Wait for all "auto" /etc/network/interfaces to be up for network-online.target
Documentation=man:interfaces(5) man:ifup(8)
DefaultDependencies=no
After=local-fs.target
Before=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutStartSec=2min
ExecStart=/bin/sh -ec '\
for i in $(ifquery --list --exclude lo --allow auto); do INTERFACES="$INTERFACES$i "; done; \
[ -n "$INTERFACES" ] || exit 0; \
while ! ifquery --state $INTERFACES >/dev/null; do sleep 1; done; \
for i in $INTERFACES; do while [ -e /run/network/ifup-$i.pid ]; do sleep 0.2; done; done'
[Install]
WantedBy=network-online.target
Este é o arquivo de serviço presente em um sistema Ubuntu 15.04, mas com a seção [Install]
adicionada para tornar as coisas um pouco mais fáceis. Eu estou esperando que o comportamento de ifup
no Ubuntu 15.04 seja o mesmo que o comportamento de ifup
no Debian Jessie. Se não, algumas modificações serão necessárias (particularmente com a última linha).
Em seguida, execute sudo systemctl enable ifup-wait-all-auto.service
. Após a reinicialização do seu computador, você verá que o network-online.target
é alcançado depois que as interfaces são ativadas (pelo menos).