1) Don't require NM, but run after it. This allows this service
to be installed without bringing up NetworkManager. Add -x so that
it exits if NM isn't running.
2) Install as a want of network.target, instead of multi-user.target.
This allows us to skip it if nothing requires network.target or the
legacy $network SysV capability.
[Unit]
Description=Network Manager Wait Online
-Requires=NetworkManager.service
+After=NetworkManager.service
Wants=network.target
Before=network.target
[Service]
Type=oneshot
-ExecStart=@bindir@/nm-online -q --timeout=30
+ExecStart=@bindir@/nm-online -q -x --timeout=30
[Install]
-WantedBy=multi-user.target
+WantedBy=network.target