1
0
فهرست منبع

display Starting/Stopping service only when its enabler var is not NO

also, show only the basename and do not leak rcquiet to child env
Thorsten Glaser 11 سال پیش
والد
کامیت
b02bbc72e9
2فایلهای تغییر یافته به همراه36 افزوده شده و 8 حذف شده
  1. 18 4
      package/base-files/src/etc/init.d/rcK
  2. 18 4
      package/base-files/src/etc/init.d/rcS

+ 18 - 4
package/base-files/src/etc/init.d/rcK

@@ -1,18 +1,32 @@
 #!/bin/sh
 export PATH=/bin:/sbin:/usr/bin:/usr/sbin
 : ${rcquiet=0}
+if test x"$rcquiet" = x"0" && sh -n /etc/rc.conf >/dev/null 2>&1; then
+	. /etc/rc.conf
+	unset rcquiet
+	rcquiet=0
+else
+	unset rcquiet
+	rcquiet=1
+fi
 {
 	grep '^#INIT ' /etc/init.d/* | \
 	    sort -rnk2 | \
 	    while read line; do
-		test x"$rcquiet" = x"0" && echo -n "Stopping ${line%%:*}... "
+		rcenabled=NO
+		rcname=${line%%:*}
+		rcname=${rcname##*/}
+		test x"$rcquiet" = x"0" && eval 'rcenabled=${'"${rcname}"':-NO}'
+		test x"$rcenabled" = x"NO" || echo -n "Stopping ${rcname}... "
 		sh ${line%%:*} autostop
 		rc=$?
-		case $rcquiet:$rc in
-		(0:0)
+		case $rcenabled:$rc in
+		(NO:*)
+			;;
+		(*:0)
 			echo done.
 			;;
-		(0:*)
+		(*:*)
 			echo "failed ($rc)."
 			;;
 		esac

+ 18 - 4
package/base-files/src/etc/init.d/rcS

@@ -7,18 +7,32 @@ ln -s /proc/self/fd/2 /dev/stderr
 echo "System initialization ..."
 export PATH=/bin:/sbin:/usr/bin:/usr/sbin
 : ${rcquiet=0}
+if test x"$rcquiet" = x"0" && sh -n /etc/rc.conf >/dev/null 2>&1; then
+	. /etc/rc.conf
+	unset rcquiet
+	rcquiet=0
+else
+	unset rcquiet
+	rcquiet=1
+fi
 {
 	grep '^#INIT ' /etc/init.d/* | \
 	    sort -nk2 | \
 	    while read line; do
-		test x"$rcquiet" = x"0" && echo -n "Starting ${line%%:*}... "
+		rcenabled=NO
+		rcname=${line%%:*}
+		rcname=${rcname##*/}
+		test x"$rcquiet" = x"0" && eval 'rcenabled=${'"${rcname}"':-NO}'
+		test x"$rcenabled" = x"NO" || echo -n "Starting ${rcname}... "
 		sh ${line%%:*} autostart
 		rc=$?
-		case $rcquiet:$rc in
-		(0:0)
+		case $rcenabled:$rc in
+		(NO:*)
+			;;
+		(*:0)
 			echo done.
 			;;
-		(0:*)
+		(*:*)
 			echo "failed ($rc)."
 			;;
 		esac