84 lines
2.2 KiB
Bash
Executable File
84 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
### BEGIN INIT INFO
|
|
# Provides: acpid
|
|
# Required-Start: $remote_fs $syslog
|
|
# Required-Stop: $remote_fs $syslog
|
|
# X-Start-Before: kdm gdm3 xdm lightdm
|
|
# X-Stop-After: kdm gdm3 xdm lightdm
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop:
|
|
# Short-Description: Start the Advanced Configuration and Power Interface daemon
|
|
# Description: Provide a socket for X11, hald and others to multiplex
|
|
# kernel ACPI events.
|
|
### END INIT INFO
|
|
|
|
set -e
|
|
|
|
ACPID="/usr/sbin/acpid"
|
|
DEFAULTS="/etc/default/acpid"
|
|
|
|
# Check for daemon presence
|
|
[ -x "$ACPID" ] || exit 0
|
|
|
|
OPTIONS=""
|
|
MODULES=""
|
|
# Include acpid defaults if available
|
|
[ -r "$DEFAULTS" ] && . "$DEFAULTS"
|
|
|
|
# Get lsb functions
|
|
. /lib/lsb/init-functions
|
|
|
|
# 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#^(/lib/modules/[^/]+/)?kernel/(drivers|ubuntu)/acpi/([^/]+/)*(.*)\.ko:.*#\4#p' "/lib/modules/$(uname -r)/modules.dep")"
|
|
fi
|
|
|
|
if [ -z "$MODULES" ]; then
|
|
return
|
|
fi
|
|
|
|
log_begin_msg "Loading ACPI kernel modules..."
|
|
# work around a bug in initramfs which leaks this env var Launchpad #291619
|
|
# and a bug in modprobe --all --quiet which doesn't load all modules and
|
|
# exits with non-zero exit status Debian #504088
|
|
unset MODPROBE_OPTIONS
|
|
modprobe --all --use-blacklist $MODULES 2>/dev/null
|
|
log_end_msg $?
|
|
}
|
|
|
|
set +e
|
|
|
|
case "$1" in
|
|
start)
|
|
load_modules || true
|
|
log_daemon_msg "Starting ACPI services" "acpid"
|
|
start-stop-daemon --start --quiet --oknodo --exec "$ACPID" -- $OPTIONS
|
|
log_end_msg $?
|
|
;;
|
|
stop)
|
|
log_daemon_msg "Stopping ACPI services" "acpid"
|
|
start-stop-daemon --stop --quiet --oknodo --retry 2 --exec "$ACPID"
|
|
log_end_msg $?
|
|
;;
|
|
restart)
|
|
$0 stop
|
|
sleep 1
|
|
$0 start
|
|
;;
|
|
reload|force-reload)
|
|
log_daemon_msg "Reloading ACPI services" "acpid"
|
|
start-stop-daemon --stop --signal 1 --exec "$ACPID"
|
|
log_end_msg $?
|
|
;;
|
|
status)
|
|
status_of_proc "$ACPID" acpid
|
|
;;
|
|
*)
|
|
log_success_msg "Usage: /etc/init.d/acpid {start|stop|restart|reload|force-reload|status}"
|
|
exit 1
|
|
esac
|
|
|