ifupdown has a systemd hook that's intended to reproduce the "network-failsafe" behavior that we had under upstart; but this only hooks into the network-online target, not the earlier network target which is the one that actually blocks boot (nothing on a snappy system actually references network-online.target).
We should definitely not be blocking network.target indefinitely on boot waiting for the results of /etc/init.d/networking. There needs to be some kind of timeout to allow the system to continue booting when a network device configured in /etc/network can't be brought online - while also allowing the system to continue trying to bring that network device up in the background.
Since /run/systemd/generator/networking.service.d/50-insserv.conf-\$network.conf is created by systemd-insserv-generator, opening a systemd task as well.
The remaining issue is that /etc/init. d/networking is sequenced before network.target, with no timeout.
# cat /run/systemd/ generator/ networking. service. d/50-insserv. conf-\$ network. conf insserv- generator
# Automatically generated by systemd-
[Unit] target network. target
Wants=network.
Before=
#
ifupdown has a systemd hook that's intended to reproduce the "network-failsafe" behavior that we had under upstart; but this only hooks into the network-online target, not the earlier network target which is the one that actually blocks boot (nothing on a snappy system actually references network- online. target) .
We should definitely not be blocking network.target indefinitely on boot waiting for the results of /etc/init. d/networking. There needs to be some kind of timeout to allow the system to continue booting when a network device configured in /etc/network can't be brought online - while also allowing the system to continue trying to bring that network device up in the background.
Since /run/systemd/ generator/ networking. service. d/50-insserv. conf-\$ network. conf is created by systemd- insserv- generator, opening a systemd task as well.