aboutsummaryrefslogtreecommitdiff
path: root/init.d
diff options
context:
space:
mode:
authorWilliam Hubbs <w.d.hubbs@gmail.com>2018-03-16 14:33:01 -0500
committerWilliam Hubbs <w.d.hubbs@gmail.com>2018-03-16 14:33:01 -0500
commit6b475ab26992f1dd8815700828df46abc4b71d27 (patch)
treece45102397dea102c222b3d0381d002d3e51a7e9 /init.d
parentb302b0c094c2c99b810aec9c8877adcd1effabac (diff)
init.d/modules: add code from modules-load service
There is no reason for these to be separate services. I did add a provide so that we don't break backward compatibility.
Diffstat (limited to 'init.d')
-rw-r--r--init.d/Makefile4
-rw-r--r--init.d/modules-load.in72
-rw-r--r--init.d/modules.in62
3 files changed, 62 insertions, 76 deletions
diff --git a/init.d/Makefile b/init.d/Makefile
index 9c97e1ed..e18f7a9f 100644
--- a/init.d/Makefile
+++ b/init.d/Makefile
@@ -19,10 +19,10 @@ SRCS-FreeBSD= hostid.in modules.in moused.in newsyslog.in pf.in rarpd.in \
rc-enabled.in rpcbind.in savecore.in syslogd.in
# These are FreeBSD specific
SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in encswap.in ipfw.in \
- modules-load.in mixer.in nscd.in powerd.in syscons.in
+ mixer.in nscd.in powerd.in syscons.in
SRCS-Linux= agetty.in binfmt.in devfs.in cgroups.in dmesg.in hwclock.in \
- consolefont.in keymaps.in killprocs.in modules.in modules-load.in \
+ consolefont.in keymaps.in killprocs.in modules.in \
mount-ro.in mtab.in numlock.in procfs.in net-online.in sysfs.in \
termencoding.in
diff --git a/init.d/modules-load.in b/init.d/modules-load.in
deleted file mode 100644
index f71f704d..00000000
--- a/init.d/modules-load.in
+++ /dev/null
@@ -1,72 +0,0 @@
-#!@SBINDIR@/openrc-run
-# Copyright (c) 2016 The OpenRC Authors.
-# See the Authors file at the top-level directory of this distribution and
-# https://github.com/OpenRC/openrc/blob/master/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/master/LICENSE
-# This file may not be copied, modified, propagated, or distributed
-# except according to the terms contained in the LICENSE file.
-
-description="Loads a list of modules from systemd-compatible locations."
-
-depend()
-{
- keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver
-}
-
-find_modfiles()
-{
- local dirs="/usr/lib/modules-load.d /run/modules-load.d /etc/modules-load.d"
- local basenames files fn x y
- for x in $dirs; do
- [ ! -d $x ] && continue
- for y in $x/*.conf; do
- [ -f $y ] && basenames="${basenames}\n${y##*/}"
- done
- done
- basenames=$(printf "$basenames" | sort -u)
- for x in $basenames; do
- for y in $dirs; do
- [ -r $y/$x ] &&
- fn=$y/$x
- done
- files="$files $fn"
- done
- echo $files
-}
-
-load_modules()
-{
- local file m modules rc x
- file=$1
- [ -z "$file" ] && return 0
- while read m x; do
- case $m in
- \;*) continue ;;
- \#*) continue ;;
- *) modules="$modules $m"
- ;;
- esac
- done < $file
- for x in $modules; do
- ebegin "Loading module $x"
- case "$RC_UNAME" in
- FreeBSD) kldload "$x"; rc=$? ;;
- Linux) modprobe --use-blacklist -q "$x"; rc=$? ;;
- *) ;;
- esac
- eend $rc "Failed to load $x"
- done
-}
-
-start()
-{
- local x
- files=$(find_modfiles)
- for x in $files; do
- load_modules $x
- done
- return 0
-}
diff --git a/init.d/modules.in b/init.d/modules.in
index 2eab77f0..d6dd7a29 100644
--- a/init.d/modules.in
+++ b/init.d/modules.in
@@ -14,10 +14,65 @@ description="Loads a user defined list of kernel modules."
depend()
{
use isapnp
- want modules-load
+ provide modules-load
keyword -docker -lxc -openvz -prefix -systemd-nspawn -vserver
}
+find_modfiles()
+{
+ local dirs="/usr/lib/modules-load.d /run/modules-load.d /etc/modules-load.d"
+ local basenames files fn x y
+ for x in $dirs; do
+ [ ! -d $x ] && continue
+ for y in $x/*.conf; do
+ [ -f $y ] && basenames="${basenames}\n${y##*/}"
+ done
+ done
+ basenames=$(printf "$basenames" | sort -u)
+ for x in $basenames; do
+ for y in $dirs; do
+ [ -r $y/$x ] &&
+ fn=$y/$x
+ done
+ files="$files $fn"
+ done
+ echo $files
+}
+
+load_modules()
+{
+ local file m modules rc x
+ file=$1
+ [ -z "$file" ] && return 0
+ while read m x; do
+ case $m in
+ \;*) continue ;;
+ \#*) continue ;;
+ *) modules="$modules $m"
+ ;;
+ esac
+ done < $file
+ for x in $modules; do
+ ebegin "Loading module $x"
+ case "$RC_UNAME" in
+ FreeBSD) kldload "$x"; rc=$? ;;
+ Linux) modprobe --use-blacklist -q "$x"; rc=$? ;;
+ *) ;;
+ esac
+ eend $rc "Failed to load $x"
+ done
+}
+
+modules_load_d()
+{
+ local x
+ files=$(find_modfiles)
+ for x in $files; do
+ load_modules $x
+ done
+ return 0
+}
+
FreeBSD_modules()
{
local cnt=0 x
@@ -82,7 +137,10 @@ Linux_modules()
start()
{
case "$RC_UNAME" in
- FreeBSD|Linux) ${RC_UNAME}_modules ;;
+ FreeBSD|Linux)
+ modules_load_d
+ ${RC_UNAME}_modules
+ ;;
*) ;;
esac
return 0