]> git.pld-linux.org Git - packages/acpid.git/blob - acpid.init
- IBM_LAPTOP is back (thinkpad_acpi module)
[packages/acpid.git] / acpid.init
1 #!/bin/sh
2 #
3 # acpid         Starts the acpi daemon
4 #
5 # chkconfig:    345 44 56
6 # description:  Listen and dispatch ACPI events from the kernel
7 # processname:  acpid
8 #
9 # pidfile:      /var/run/acpid.pid
10
11 # Check for ACPI event-file support on kernel side
12 [ -r /proc/acpi/event ] || exit 0
13
14 # Source function library.
15 . /etc/rc.d/init.d/functions
16
17 # Initial values (just in case):
18 LAPTOP_MODULES=""
19 VARIOUS_MODULES=""
20 ASUS_LAPTOP=""
21 TOSHIBA_LAPTOP=""
22 MODULES=""
23
24 # Configuration file.
25 . /etc/sysconfig/acpid
26
27 # As the name says. If the kernel supports modules,
28 # it'll try to load the ones listed in "MODULES".
29 load_modules() {
30         [ -f /proc/modules ] || return 0
31
32         if [ "$MODULES" = "all" ]; then
33                 MODULES=$(sed -rn 's#^kernel/(drivers|misc)/acpi/([^/]+/)*(.*)\.ko(\.gz)?:.*#\3#p' /lib/modules/$(uname -r)/modules.dep)
34         else
35                 # assemble from old lists
36                 MODULES="$MODULES $LAPTOP_MODULES"
37                 MODULES="$MODULES $VARIOUS_MODULES"
38                 if is_yes "$ASUS_LAPTOP"; then
39                         MODULES="$MODULES asus_acpi"
40                 fi
41                 if is_yes "$TOSHIBA_LAPTOP"; then
42                         MODULES="$MODULES toshiba_acpi"
43                 fi
44                 if is_yes "$IBM_LAPTOP"; then
45                         MODULES="$MODULES ibm_acpi"
46                 fi
47                 # strip spaces
48                 MODULES=$(echo ${MODULES})
49         fi
50
51         if [ -z "$MODULES" ]; then
52                 return
53         fi
54
55         show "Loading ACPI modules..."; busy
56         modprobe --all $MODULES && ok || fail
57 }
58
59 # Start daemons.
60 start() {
61         if [ -f /var/lock/subsys/acpid ]; then
62                 msg_already_running "ACPI Event Daemon"
63                 return
64         fi
65
66         load_modules
67
68         # starting:
69         msg_starting "ACPI Event Daemon"
70         daemon /usr/sbin/acpid $PROGRAM_ARGS
71         RETVAL=$?
72         [ $RETVAL -eq 0 ] && touch /var/lock/subsys/acpid
73 }
74
75 # Stop daemons.
76 stop() {
77         if [ ! -f /var/lock/subsys/acpid ]; then
78                 msg_not_running "ACPI Event Daemon"
79                 return
80         fi
81
82         msg_stopping "ACPI Event Daemon"
83         killproc acpid
84         rm -f /var/lock/subsys/acpid >/dev/null 2>&1
85 }
86
87 condrestart() {
88         if [ ! -f /var/lock/subsys/acpid ]; then
89                 msg_not_running "ACPI Event Daemon"
90                 RETVAL=$1
91                 return
92         fi
93
94         stop
95         start
96 }
97
98 RETVAL=0
99 # See how we were called.
100 case "$1" in
101   start)
102         start
103         ;;
104   stop)
105         stop
106         ;;
107   restart)
108         stop
109         start
110         ;;
111   try-restart)
112         condrestart 0
113         ;;
114   reload|force-reload)
115         if [ -f /var/lock/subsys/acpid ]; then
116                 msg_reloading "ACPI Event Daemon"
117                 killproc acpid -HUP
118                 RETVAL=$?
119         else
120                 msg_not_running "ACPI Event Daemon"
121                 exit 7
122         fi
123         ;;
124   status)
125         status acpid
126         ;;
127   *)
128         msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}"
129         exit 3
130 esac
131
132 exit $RETVAL
This page took 0.049591 seconds and 3 git commands to generate.