BTW, I meant to "document" how net.agent and the networking init script
interact, so the next person doesn't have to figure this out.

1. /etc/init.d/networking start creates /run/network/ifstate. (it
does nothing if it detects upstart is the running init.)

2. ifupdown does nothing when /run/network/ifstate is missing.

3. ifupdown -a sets up lo, even if lo is not configured in
/etc/network/interfaces (see the man page of ifupdown).

4. ifupdown -a (no further args) only brings up interfaces marked as
"auto" in /etc/network/interfaces.

5. /lib/udev/net.agent defers its work to [email protected] if it
detects systemd is the running init. With other inits, it waits for
the lo device to become not-down (usually it will become "unknown"),
and then calls ifup --allow=hotplug $INTERFACE. (net.agent exits if
$INTERFACE is lo or some of the common 'virtual' interface names.)

6. [email protected] pulls in networking.service (-> networking init
script), and then calls ifup --allow=hotplug %i.

Therefore, under sysvinit, net.agent waits (by extension of waiting
for the lo device) for the networking init script to start. If one
forces 'lo' to become up before that, net.agent will immediately
call ifupdown, which then does nothing (because /run/network/ifstate
will be absent).

-- 
 ,''`.  Christian Hofstaedtler <[email protected]>
: :' :  Debian Developer
`. `'   7D1A CFFA D9E0 806C 9C4C  D392 5C13 D6DB 9305 2E03
  `-


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to