--- sysctl.8 | 2 ++ sysctl.c | 12 ++++++++++++ 2 files changed, 14 insertions(+) --- sysctl.8 +++ sysctl.8 2018-04-04 11:38:10.173667994 +0000 @@ -81,6 +81,8 @@ directories in the following list in giv Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. .br +/boot/sysctl.conf- +.br /run/sysctl.d/*.conf .br /etc/sysctl.d/*.conf --- sysctl.c +++ sysctl.c 2018-04-04 11:36:32.515463365 +0000 @@ -39,6 +39,7 @@ #include #include #include +#include #include #include "c.h" @@ -621,6 +622,7 @@ static int sortpairs(const void *A, cons static int PreloadSystem(void) { unsigned di, i; + struct utsname uts; const char *dirs[] = { "/run/sysctl.d", "/etc/sysctl.d", @@ -685,6 +687,16 @@ static int PreloadSystem(void) } qsort(cfgs, ncfgs, sizeof(struct cfg *), sortpairs); + if (uname(&uts) == 0) { + char buf[PATH_MAX]; + snprintf(buf, sizeof(buf), "/boot/sysctl.conf-%s", uts.release); + if (access(buf, R_OK) == 0) { + if (!Quiet) + printf("* Applying %s ...\n", buf); + Preload(buf); + } + } + for (i = 0; i < ncfgs; ++i) { if (!Quiet) printf(_("* Applying %s ...\n"), cfgs[i]->value);