sysvinit: fix problem in switching runlevels
authorChen Qi <qi.chen@windriver.com>
Mon, 11 Nov 2013 09:26:09 +0000 (17:26 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 20 Nov 2013 14:03:23 +0000 (14:03 +0000)
Previously, if we switch to runlevel 1 and then switch back to runlevel
5, the network interface will be brought down and the NFS service will
not be restarted correctly.

The problem is that the networking and rpcbind services are brought down
in runlevel 1 but not brought up in runlevel 5.

This patch fixes the above problem. It's based on the assumption that
in sysvinit-based system, runlevel 1 does not have networking support.

This patch adjusts some init script parameters used by update-rc.d. It
makes sure that networking starts before rpcbind which in turn starts
before mountnfs.sh. When switching to runlevel 0, 1 and 6, the umountnfs.sh
is run first before stopping rpcbind service, and the network is brought
down afterwards.

[YOCTO #5513]

(From OE-Core rev: f12e1291b51ba6692b6809570d6a9b73c70a7fe9)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
meta/recipes-core/initscripts/initscripts_1.0.bb
meta/recipes-extended/rpcbind/rpcbind_0.2.0.bb

index 9d3af34..0f4290c 100644 (file)
@@ -9,7 +9,7 @@ PR = "r3"
 inherit update-rc.d
 
 INITSCRIPT_NAME = "networking"
-INITSCRIPT_PARAMS = "start 40 S . stop 40 0 6 1 ."
+INITSCRIPT_PARAMS = "start 10 2 3 4 5 . stop 80 0 6 1 ."
 
 SRC_URI = "file://copyright \
            file://init \
index 2d58266..d46ba67 100644 (file)
@@ -108,7 +108,7 @@ do_install () {
        update-rc.d -r ${D} rmnologin.sh start 99 2 3 4 5 .
        update-rc.d -r ${D} sendsigs start 20 0 6 .
        update-rc.d -r ${D} urandom start 30 S 0 6 .
-       update-rc.d -r ${D} umountnfs.sh start 31 0 6 .
+       update-rc.d -r ${D} umountnfs.sh start 31 0 6 .
        update-rc.d -r ${D} umountfs start 40 0 6 .
        update-rc.d -r ${D} reboot start 90 6 .
        update-rc.d -r ${D} halt start 90 0 .
@@ -117,7 +117,7 @@ do_install () {
        update-rc.d -r ${D} checkroot.sh start 06 S .
        update-rc.d -r ${D} mountall.sh start 03 S .
        update-rc.d -r ${D} hostname.sh start 39 S .
-       update-rc.d -r ${D} mountnfs.sh start 45 S .
+       update-rc.d -r ${D} mountnfs.sh start 15 2 3 4 5 .
        update-rc.d -r ${D} bootmisc.sh start 55 S .
        update-rc.d -r ${D} sysfs.sh start 02 S .
        update-rc.d -r ${D} populate-volatile.sh start 37 S .
index a75e4e1..16fb7b7 100644 (file)
@@ -35,7 +35,7 @@ PACKAGECONFIG ??= "tcp-wrappers"
 PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
 
 INITSCRIPT_NAME = "rpcbind"
-INITSCRIPT_PARAMS = "start 43 S . start 32 0 6 . stop 81 1 ."
+INITSCRIPT_PARAMS = "start 12 2 3 4 5 . stop 60 0 1 6 ."
 
 SYSTEMD_SERVICE_${PN} = "rpcbind.service"
 SYSTEMD_AUTO_ENABLE = "disable"