#!/bin/sh # # acpid Starts the acpi daemon # # chkconfig: 345 44 56 # description: Listen and dispatch ACPI events from the kernel # processname: acpid # # pidfile: /var/run/acpid.pid # Source function library. . /etc/rc.d/init.d/functions # Initial values (just in case): LAPTOP_MODULES="" VARIOUS_MODULES="" ASUS_LAPTOP="" TOSHIBA_LAPTOP="" MODULES="" # Configuration file. . /etc/sysconfig/acpid # As the name says. If the kernel supports modules, # it'll try to load the ones listed in "MODULES". load_modules() { [ -f /proc/modules ] || return 0 if [ "$MODULES" = "all" ]; then MODULES=$(sed -rn 's#^kernel/(drivers/acpi|drivers/misc/.*_acpi)/([^/]+/)*(.*)\.ko\.gz:.*#\3#p' /lib/modules/$(uname -r)/modules.dep) else # assemble from old lists MODULES="$MODULES $LAPTOP_MODULES" MODULES="$MODULES $VARIOUS_MODULES" if is_yes "$ASUS_LAPTOP"; then MODULES="$MODULES asus_acpi" fi if is_yes "$TOSHIBA_LAPTOP"; then MODULES="$MODULES toshiba_acpi" fi if is_yes "$IBM_LAPTOP"; then MODULES="$MODULES ibm_acpi" fi # strip spaces MODULES=$(echo ${MODULES}) fi if [ -z "$MODULES" ]; then return fi # see if the modules are already loaded if [ "$(lsmod | grep -E '^('$(echo $MODULES | tr ' ' '|')')\b' | wc -l)" = "$(echo $MODULES | wc -w)" ]; then return fi show "Loading ACPI modules..."; busy modprobe --all $MODULES && ok || fail } # Start daemons. start() { if [ -f /var/lock/subsys/acpid ]; then msg_already_running "ACPI Event Daemon" return fi load_modules if is_yes "$NETLINK"; then PROGRAM_ARGS="$PROGRAM_ARGS -n" fi if [ "$CLIENTMAX" ]; then PROGRAM_ARGS="$PROGRAM_ARGS -C $CLIENTMAX" fi # starting: msg_starting "ACPI Event Daemon" daemon /usr/sbin/acpid $PROGRAM_ARGS RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/acpid } # Stop daemons. stop() { if [ ! -f /var/lock/subsys/acpid ]; then msg_not_running "ACPI Event Daemon" return fi msg_stopping "ACPI Event Daemon" killproc acpid rm -f /var/lock/subsys/acpid >/dev/null 2>&1 } condrestart() { if [ ! -f /var/lock/subsys/acpid ]; then msg_not_running "ACPI Event Daemon" RETVAL=$1 return fi stop start } reload() { if [ -f /var/lock/subsys/acpid ]; then msg_not_running "ACPI Event Daemon" RETVAL=7 return fi msg_reloading "ACPI Event Daemon" killproc acpid -HUP RETVAL=$? } RETVAL=0 # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; try-restart) condrestart 0 ;; reload|force-reload) reload ;; load-modules) load_modules ;; status) status acpid ;; *) msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|load-modules|status}" exit 3 esac exit $RETVAL