diff --git a/package/base-files/files/etc/init.d/sysctl b/package/base-files/files/etc/init.d/sysctl index d18b70af5c9..14c37b8a561 100755 --- a/package/base-files/files/etc/init.d/sysctl +++ b/package/base-files/files/etc/init.d/sysctl @@ -2,6 +2,7 @@ # Copyright (C) 2006 OpenWrt.org START=11 +USE_PROCD=1 apply_defaults() { local mem="$(awk '/^MemTotal:/ {print $2}' /proc/meminfo)" @@ -68,11 +69,19 @@ apply_uci() { config_foreach handle_sysctl sysctl "/tmp/run/sysctl.d/01-uci.conf" } -start() { - apply_defaults - [ -f /tmp/sysctl-default.conf ] || sysctl -a 1>/tmp/sysctl-default.conf 2>/dev/null +reload_service() { apply_uci for CONF in /etc/sysctl.d/*.conf /etc/sysctl.conf /tmp/run/sysctl.d/*.conf; do [ -f "$CONF" ] && sysctl -e -p "$CONF" >&- done } + +service_triggers() { + procd_add_reload_trigger "sysctl" +} + +start_service() { + apply_defaults + [ -f /tmp/sysctl-default.conf ] || sysctl -a 1>/tmp/sysctl-default.conf 2>/dev/null + reload_service +}