Avant de démarrer certaines tâches qui ont besoin d’Internet on peut faire vérifier par NetworkManager que c’est bien le cas.
Modifier la configuration de NetworkManager
ça se passe dans le fichier /etc/NetworkManager/NetworkManager.conf
On ajoute la section Connectivity
[main]
plugins=ifupdown,keyfile
dns=dnsmasq
dhcp=dhclient
[ifupdown]
managed=false
[connectivity]
uri=http://network-test.debian.org/nm
interval=120
Voir https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html
Modifier le service de test du réseau
c’est le service NetworkManager-wait-online.service. On modifie le fichier /lib/systemd/system/NetworkManager-wait-online.service
[Unit]
Description=Network Manager Wait Online
Documentation=man:nm-online(1)
Requires=NetworkManager.service
After=NetworkManager.service
Before=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/nm-online -q --timeout=600
RemainAfterExit=yes
[Install]
WantedBy=network-online.target
Voir https://developer.gnome.org/NetworkManager/stable/nm-online.html
Prendre en compte dans les services qui ont besoin d’Internet
Il faut ajouter le paramètre Requires=network-online.target
Exemple mon service de mise à jour
[Unit]
Description=Mise à jour périodique
After=exim4.service
Requires=network-online.target
[Install]
WantedBy=graphical.target
[Service]
Type=oneshot
ExecStart=/opt/update-perso
Et voila, NetworkManager attends bien que ma box soit ok avant le déclenchement des tâches conditionnées.
Cas 1 Box allumée après le PC (wifi nok puis ok)
systemd-analyze blame
4min 11.337s NetworkManager-wait-online.service
51.731s maj.service
21.899s sav-protect.service
11.128s bluetooth.service
7.319s udisks2.service
6.885s accounts-daemon.service
6.033s NetworkManager.service
5.269s dev-sda1.device
4.798s winbind.service
4.432s apmd.service
4.209s wpa_supplicant.service

Au bout des 4min 11.337s


Cas 2 PC allumé après la Box ( wifi ok)
