#!@SBINDIR@/openrc-run # Copyright (c) 2007-2015 The OpenRC Authors. # See the Authors file at the top-level directory of this distribution and # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS # # This file is part of OpenRC. It is subject to the license terms in # the LICENSE file found in the top-level directory of this # distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE # This file may not be copied, modified, propagated, or distributed # except according to the terms contained in the LICENSE file. depend() { after clock before bootmisc logger keyword -prefix -systemd-nspawn -vserver } BSD_sysctl() { [ -e /etc/sysctl.conf ] || return 0 local retval=0 var= comments= conf= eindent for conf in /etc/sysctl.conf /etc/sysctl.d/*.conf; do if [ -r "$conf" ]; then vebegin "applying $conf" while read var comments; do case "$var" in ""|"#"*) continue;; esac sysctl -w "$var" >/dev/null || retval=1 done < "$conf" veend $retval fi done eoutdent return $retval } linux_sysctl() { local quiet yesno $rc_verbose || quiet=-q # if sysctl supports --system, use it, otherwise implement # our own uapi config mechanism with -p. # notably, busybox's and toybox's sysctl do not support --system. sysctl ${quiet} --system && return 0 eindent local files= for f in /lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf; do if [ -f /etc/sysctl.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /etc/sysctl.d/${f##*/}" continue fi if [ -f /run/sysctl.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /run/sysctl.d/${f##*/}" continue fi if [ -f "$f" ]; then ebegin "applying $f" sysctl $quiet -p "$f" # Don't change retval= since we expect some package/distro provided # sysctl configurations to break, so just warn when the user wants # verbose messages ewend $? "Unable to configure kernel parameters from $f" fi done for f in /etc/sysctl.d/*.conf; do if [ -f /run/sysctl.d/"${f##*/}" ]; then veinfo "Ignoring $f due to /run/sysctl.d/${f##*/}" continue fi files="$files $f" done [ -f /etc/sysctl.conf ] && files="$files /etc/sysctl.conf" for f in /run/sysctl.d/*.conf; do [ -f "$f" ] && files="$files $f" done for f in $files; do ebegin "Applying $f" sysctl $quiet -p "$f" if ! eend $? "Unable to configure kernel parameters from $f"; then retval=1 fi done eoutdent return $retval } start() { local rc=0 ebegin "Configuring kernel parameters" case "$RC_UNAME" in *BSD|GNU) BSD_sysctl; rc=$? ;; Linux) linux_sysctl; rc=$? ;; esac eend $rc "Unable to configure some kernel parameters" }