]> git.pld-linux.org Git - packages/acpid.git/blob - acpid.init
- acpid will use netlink when /proc/acpi/event doesn't exist
[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 # Source function library.
12 . /etc/rc.d/init.d/functions
13
14 upstart_controlled --except load-modules
15
16 # Initial values (just in case):
17 LAPTOP_MODULES=""
18 VARIOUS_MODULES=""
19 ASUS_LAPTOP=""
20 TOSHIBA_LAPTOP=""
21 MODULES=""
22
23 # Configuration file.
24 . /etc/sysconfig/acpid
25
26 # As the name says. If the kernel supports modules,
27 # it'll try to load the ones listed in "MODULES".
28 load_modules() {
29         [ -f /proc/modules ] || return 0
30
31         if [ "$MODULES" = "all" ]; then
32                 MODULES=$(sed -rn 's#^kernel/(drivers/acpi|drivers/misc/.*_acpi)/([^/]+/)*(.*)\.ko\.gz:.*#\3#p' /lib/modules/$(uname -r)/modules.dep)
33         else
34                 # assemble from old lists
35                 MODULES="$MODULES $LAPTOP_MODULES"
36                 MODULES="$MODULES $VARIOUS_MODULES"
37                 if is_yes "$ASUS_LAPTOP"; then
38                         MODULES="$MODULES asus_acpi"
39                 fi
40                 if is_yes "$TOSHIBA_LAPTOP"; then
41                         MODULES="$MODULES toshiba_acpi"
42                 fi
43                 if is_yes "$IBM_LAPTOP"; then
44                         MODULES="$MODULES ibm_acpi"
45                 fi
46                 # strip spaces
47                 MODULES=$(echo ${MODULES})
48         fi
49
50         if [ -z "$MODULES" ]; then
51                 return
52         fi
53
54         # see if the modules are already loaded
55         if [ "$(lsmod | grep -E '^('$(echo $MODULES | tr ' ' '|')')\b' | wc -l)" = "$(echo $MODULES | wc -w)" ]; then
56                 return
57         fi
58
59         show "Loading ACPI modules..."; busy
60         modprobe --all $MODULES && ok || fail
61 }
62
63 # Start daemons.
64 start() {
65         if [ -f /var/lock/subsys/acpid ]; then
66                 msg_already_running "ACPI Event Daemon"
67                 return
68         fi
69
70         load_modules
71
72         if is_yes "$NETLINK"; then
73                 PROGRAM_ARGS="$PROGRAM_ARGS -n"
74         fi
75         if [ "$CLIENTMAX" ]; then
76                 PROGRAM_ARGS="$PROGRAM_ARGS -C $CLIENTMAX"
77         fi
78
79         # starting:
80         msg_starting "ACPI Event Daemon"
81         daemon /usr/sbin/acpid $PROGRAM_ARGS
82         RETVAL=$?
83         [ $RETVAL -eq 0 ] && touch /var/lock/subsys/acpid
84 }
85
86 # Stop daemons.
87 stop() {
88         if [ ! -f /var/lock/subsys/acpid ]; then
89                 msg_not_running "ACPI Event Daemon"
90                 return
91         fi
92
93         msg_stopping "ACPI Event Daemon"
94         killproc acpid
95         rm -f /var/lock/subsys/acpid >/dev/null 2>&1
96 }
97
98 condrestart() {
99         if [ ! -f /var/lock/subsys/acpid ]; then
100                 msg_not_running "ACPI Event Daemon"
101                 RETVAL=$1
102                 return
103         fi
104
105         stop
106         start
107 }
108
109 reload() {
110         if [ -f /var/lock/subsys/acpid ]; then
111                 msg_not_running "ACPI Event Daemon"
112                 RETVAL=7
113                 return
114         fi
115
116         msg_reloading "ACPI Event Daemon"
117         killproc acpid -HUP
118         RETVAL=$?
119 }
120
121 RETVAL=0
122 # See how we were called.
123 case "$1" in
124   start)
125         start
126         ;;
127   stop)
128         stop
129         ;;
130   restart)
131         stop
132         start
133         ;;
134   try-restart)
135         condrestart 0
136         ;;
137   reload|force-reload)
138         reload
139         ;;
140   load-modules)
141         load_modules
142         ;;
143   status)
144         status acpid
145         ;;
146   *)
147         msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|load-modules|status}"
148         exit 3
149 esac
150
151 exit $RETVAL
This page took 0.083091 seconds and 3 git commands to generate.