diff options
Diffstat (limited to 'dkms_autoinstaller')
-rwxr-xr-x | dkms_autoinstaller | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/dkms_autoinstaller b/dkms_autoinstaller new file mode 100755 index 0000000..2cd31b9 --- /dev/null +++ b/dkms_autoinstaller @@ -0,0 +1,65 @@ +#!/bin/sh +# +# dkms_autoinstaller - A service to automatically install DKMS modules for new kernels. +# +# chkconfig: 345 04 04 +# description: Compiles and install kernel modules automatically for new \ +# kernels at boot. + +### BEGIN INIT INFO +# Provides: dkms_autoinstaller dkms +# Default-Start: 3 4 5 +# Default-Stop: 0 1 2 6 +# Required-Start: $local_fs +# Required-Stop: $local_fs +# Short-Description: DKMS kernel modules installer service +# Description: A service to automatically install DKMS modules for new kernels. +### END INIT INFO + + +if [ -f /lib/lsb/init-functions ]; then + . /lib/lsb/init-functions +elif [ -f /etc/rc.d/init.d/functions ]; then + . /etc/rc.d/init.d/functions +fi + +# We only have these functions on debian/ubuntu +# so on other distros just stub them out +if [ ! -f /etc/debian_version ]; then + alias log_daemon_msg=/bin/echo + log_end_msg() { if [ "$1" = "0" ]; then echo " Done. "; else echo " Failed. "; fi; } + alias log_action_begin_msg=log_daemon_msg + alias log_action_end_msg=log_end_msg +fi + +exec="/usr/sbin/dkms" +prog=${exec##*/} + +test -f $exec || exit 0 + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +case "$1" in + start) + if [ -n "$2" ]; then + kernel="$2" + else + kernel=$(uname -r) + fi + if [ -f /etc/dkms/no-autoinstall ]; then + log_daemon_msg "$prog: autoinstall for dkms modules has been disabled" + else + log_daemon_msg "$prog: running auto installation service for kernel $kernel" + dkms autoinstall --kernelver $kernel + log_end_msg $? + fi + ;; + stop|restart|force-reload|status|reload) + # There is no stop action, this and the 04 priority during stop is + # added to make RHEL chkconfig happy. + # Ignore others on debian/ubuntu too + ;; + *) + echo $"Usage: $0 {start}" + exit 2 +esac |