From 3d43fb6f227729bb6837ffeea3d6e2e44b6486e2 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Mon, 27 Apr 2009 13:33:37 +0000 Subject: Although the noshutdown keyword is nice, we shouldn't use it for network or dhcpcd. Instead fake network shutdown so it comes back up correctly at boot and KILL dhcpcd to preserve network. --- conf.d/network.in | 2 ++ init.d.misc/dhcpcd.in | 11 ++++++++++- init.d/network.in | 7 +++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/conf.d/network.in b/conf.d/network.in index 2719fa87..dc0f80c0 100644 --- a/conf.d/network.in +++ b/conf.d/network.in @@ -6,6 +6,8 @@ # You also have ifup_eth0 and ifdown_eth0 to run other commands when # eth0 is started and stopped. +# You should note that we don't stop the network at system shutdown by default. +# If you really need this, then set shutdown_network=YES # You can assign a default route #defaultroute="192.168.0.1" diff --git a/init.d.misc/dhcpcd.in b/init.d.misc/dhcpcd.in index 91f0110c..656a2c1e 100644 --- a/init.d.misc/dhcpcd.in +++ b/init.d.misc/dhcpcd.in @@ -14,5 +14,14 @@ depend() use logger after bootmisc modules before dns - keyword noshutdown +} + +stop_pre() +{ + # When shutting down, kill dhcpcd but preserve network + # We do this as /var/run/dhcpcd could be cleaned out when we + # return to multiuser. + if yesno $RC_GOINGDOWN; then + : ${stopsig:=SIGKILL} + fi } diff --git a/init.d/network.in b/init.d/network.in index fb9668cf..50ba7578 100644 --- a/init.d/network.in +++ b/init.d/network.in @@ -13,8 +13,6 @@ depend() need localmount after bootmisc provide net - # We don't want to stop the network at shutdown - keyword noshutdown keyword nojail noprefix novserver } @@ -240,6 +238,11 @@ start() stop() { + # Don't stop the network at shutdown. + # We don't use the noshutdown keyword so that we are started again + # correctly if we go back to multiuser. + ! yesno ${shutdown_network:-YES} && yesno $RC_GOINGDOWN && return 0 + local int= intv= cmd= downcmd= r= einfo "Stopping network" routeflush -- cgit v1.2.3