diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-06-17 23:13:14 -0400 |
---|---|---|
committer | William Hubbs <williamh@gentoo.org> | 2011-06-18 10:06:41 -0500 |
commit | 8947c00204e771a669433708de7aa740dca9d16c (patch) | |
tree | 3fb3b323b9dd44ce6c3423c16996dca3abe92cb8 /init.d/sysctl.Linux.in | |
parent | 4eb37f67cf1edbece52b5617cb763bbd899ab385 (diff) |
sysctl: do not make unknown keys fatal
If unknown keys are found, currently sysctl would add all of its valid
settings, but then leave itself marked as "stopped". Since this is not
really what we want, make unknown keys a non-fatal error.
Reported-by: Christian Ruppert <idl0r@gentoo.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'init.d/sysctl.Linux.in')
-rw-r--r-- | init.d/sysctl.Linux.in | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/init.d/sysctl.Linux.in b/init.d/sysctl.Linux.in index 83e75368..19b4942a 100644 --- a/init.d/sysctl.Linux.in +++ b/init.d/sysctl.Linux.in @@ -10,16 +10,25 @@ depend() start() { - local conf= retval=0 + local conf= retval=0 err errs + ebegin "Configuring kernel parameters" eindent + for conf in /etc/sysctl.d/*.conf /etc/sysctl.conf; do if [ -r "$conf" ]; then vebegin "applying $conf" - sysctl -p "$conf" >/dev/null + if ! err=$(sysctl -q -p "$conf" 2>&1) ; then + errs="${errs} ${err}" + sysctl -q -e -p "${conf}" + fi veend $? || retval=1 fi done + eoutdent - eend $retval "Some errors were encountered" + if [ ${retval} -eq 0 ] && [ -n "${errs}" ] ; then + ewarn "Unknown keys:${errs}" + fi + eend $retval "Some errors were encountered: ${errs}" } |