1*4882a593SmuzhiyunFrom ec1a0c8fa2e7a7c6cf70f68bdabc07cbb1a567cf Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: =?UTF-8?q?Micha=C5=82=20=C5=81yszczek?= <michal.lyszczek@bofc.pl> 3*4882a593SmuzhiyunDate: Sun, 5 May 2019 23:43:40 +0200 4*4882a593SmuzhiyunSubject: [PATCH] init.d/sysctl.in: add support for busybox sysctl 5*4882a593SmuzhiyunMIME-Version: 1.0 6*4882a593SmuzhiyunContent-Type: text/plain; charset=UTF-8 7*4882a593SmuzhiyunContent-Transfer-Encoding: 8bit 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunBusybox version of sysctl does not support --system argument, 10*4882a593Smuzhiyunand files need to be loaded one by one. This patch adds code 11*4882a593Smuzhiyunto recognize busybox sysctl and execute proper function based 12*4882a593Smuzhiyunon that. 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunSigned-off-by: Michał Łyszczek <michal.lyszczek@bofc.pl> 15*4882a593Smuzhiyun--- 16*4882a593Smuzhiyun init.d/sysctl.in | 27 ++++++++++++++++++++++++++- 17*4882a593Smuzhiyun 1 file changed, 26 insertions(+), 1 deletion(-) 18*4882a593Smuzhiyun 19*4882a593Smuzhiyundiff --git a/init.d/sysctl.in b/init.d/sysctl.in 20*4882a593Smuzhiyunindex e49f4db2..a705b3d4 100644 21*4882a593Smuzhiyun--- a/init.d/sysctl.in 22*4882a593Smuzhiyun+++ b/init.d/sysctl.in 23*4882a593Smuzhiyun@@ -37,6 +37,23 @@ BSD_sysctl() 24*4882a593Smuzhiyun return $retval 25*4882a593Smuzhiyun } 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun+Busybox_sysctl() 28*4882a593Smuzhiyun+{ 29*4882a593Smuzhiyun+ local quiet 30*4882a593Smuzhiyun+ yesno $rc_verbose || quiet=-q 31*4882a593Smuzhiyun+ 32*4882a593Smuzhiyun+ eindent 33*4882a593Smuzhiyun+ for conf in /etc/sysctl.conf /etc/sysctl.d/*.conf; do 34*4882a593Smuzhiyun+ if [ -r "$conf" ]; then 35*4882a593Smuzhiyun+ vebegin "applying $conf" 36*4882a593Smuzhiyun+ sysctl $quiet -p "$conf" || retval=1 37*4882a593Smuzhiyun+ veend $retval 38*4882a593Smuzhiyun+ fi 39*4882a593Smuzhiyun+ done 40*4882a593Smuzhiyun+ eoutdent 41*4882a593Smuzhiyun+ return $retval 42*4882a593Smuzhiyun+} 43*4882a593Smuzhiyun+ 44*4882a593Smuzhiyun Linux_sysctl() 45*4882a593Smuzhiyun { 46*4882a593Smuzhiyun local quiet 47*4882a593Smuzhiyun@@ -52,7 +69,15 @@ start() 48*4882a593Smuzhiyun ebegin "Configuring kernel parameters" 49*4882a593Smuzhiyun case "$RC_UNAME" in 50*4882a593Smuzhiyun *BSD|GNU) BSD_sysctl; rc=$? ;; 51*4882a593Smuzhiyun- Linux) Linux_sysctl; rc=$? ;; 52*4882a593Smuzhiyun+ Linux) 53*4882a593Smuzhiyun+ sysctl -h > /dev/null 2>&1 54*4882a593Smuzhiyun+ if [ $? -ne 0 ]; then 55*4882a593Smuzhiyun+ # busybox version of sysctl does not recognize -h option 56*4882a593Smuzhiyun+ Busybox_sysctl 57*4882a593Smuzhiyun+ else 58*4882a593Smuzhiyun+ Linux_sysctl 59*4882a593Smuzhiyun+ fi 60*4882a593Smuzhiyun+ rc=$? ;; 61*4882a593Smuzhiyun esac 62*4882a593Smuzhiyun eend $rc "Unable to configure some kernel parameters" 63*4882a593Smuzhiyun } 64*4882a593Smuzhiyun-- 65*4882a593Smuzhiyun2.18.1 66*4882a593Smuzhiyun 67