2
0
Эх сурвалжийг харах

sysctl: read settings from /etc/sysctl.d/*.conf

This changes makes it possible to store custom settings
in individual files inside the directory /etc/sysctl.d/.

Signed-off-by: Stefan Tomanek <[email protected]>

SVN-Revision: 46239
John Crispin 10 жил өмнө
parent
commit
3787c32183

+ 2 - 0
package/base-files/Makefile

@@ -55,6 +55,8 @@ define Package/base-files/conffiles
 /etc/config/
 /etc/dropbear/
 /etc/crontabs/
+/etc/sysctl.d/local.conf
+/etc/sysctl.d/
 $(call $(TARGET)/conffiles)
 endef
 

+ 6 - 3
package/base-files/files/etc/hotplug.d/net/00-sysctl

@@ -1,6 +1,9 @@
 #!/bin/sh
 
-if [ -f /etc/sysctl.conf ] && [ "$ACTION" = add ]; then
-	sed -ne "/^[[:space:]]*net\..*\.$DEVICENAME\./p" /etc/sysctl.conf | \
-		sysctl -e -p - | logger -t sysctl
+if [ "$ACTION" = add ]; then
+	for CONF in /etc/sysctl.conf /etc/sysctl.d/*.conf; do
+		[ ! -f "$CONF" ] && continue;
+		sed -ne "/^[[:space:]]*net\..*\.$DEVICENAME\./p" "$CONF" | \
+			sysctl -e -p - | logger -t sysctl
+	done
 fi

+ 3 - 1
package/base-files/files/etc/init.d/sysctl

@@ -3,5 +3,7 @@
 
 START=11
 start() {
-	[ -f /etc/sysctl.conf ] && sysctl -p -e >&-
+	for CONF in /etc/sysctl.conf /etc/sysctl.d/*.conf; do
+		[ -f "$CONF" ] && sysctl -p "$CONF" -e >&-
+	done
 }

+ 1 - 0
package/base-files/files/etc/sysctl.d/local.conf

@@ -0,0 +1 @@
+# local sysctl settings can be stored in this directory