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