Ctrl-c abort of dhclient during rc.d start aborts all network
brooks at one-eyed-alien.net
Wed Aug 31 19:46:13 GMT 2005
On Wed, Aug 31, 2005 at 12:10:44PM +0100, Robert Watson wrote:
> I believe this is related to the new dhclient -- when I run my notebook
> disconnected from the network, the boot pauses for about 15-20 seconds
> waiting for a link on xl0. Being impatient when booting in airports just
> before my flight, I like to hit Ctrl-C and abort it, since I know that
> there will be no link. In the old world order, this was fine, dhclient
> was simply killed and all was good. In the new world order, it kills all
> of the netif startup script, and for some reason (ordering related,
> presumably), this prevents 127.0.0.1 from being configured on lo0, which
> causes a number of applications to die, since 0.0.0.0 cannot be bound. It
> sounds like a couple of things are unfortunate here:
The wait should be 10 seconds plus some startup time.
> (1) It would be good to configure lo0 first.
Interfaces are configured in order of index by default. If lo0 were
attached sooner, it would be configured sooner. I'm somewhat tempted to
change it from it's current (apparently bogus) position in the startup
process at SI_SUB_PROTO_IFATTACHDOMAIN to SI_SUB_INIT_IF/SI_ORDER_ANY
and push the l2com attachments from SI_ORDER_ANY to SI_ORDER_MIDDLE.
Strictly speaking I think lo(4) should be SI_SUB_PSEUDO, but moving it
up so it attached first makes some sense given how critical it is.
Alternativly, one could add code to sort the result of "ifconfig -l" to
configure lo0 first.
> (2) If a dhclient is ctrl-c'd, it would be nice if the rest of the network
> configuration continued.
I don't see any code in the startup scripts that would cause them to
exit on failure so the issue is probalby that the signal is being
delivered to the /etc/rc.d/netif instance. I don't really know what the
solution to that is.
> The printing of '.'s in dhclient is also a bit excessive.
Hanging with no output seems even less unhelpful. :( Longer term I want
to get rid of syncronous calls to dhclient in the startup process, but I
haven't had time to work on it and IMO, it's a bit late in the game for
More information about the freebsd-current