]> git.pld-linux.org Git - packages/acpid.git/blob - acpid.init
- use functions, add load-modules
[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/acpi|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         # see if the modules are already loaded
56         if [ "$(lsmod | grep -E '^('$(echo $MODULES | tr ' ' '|')')\b' | wc -l)" = "$(echo $MODULES | wc -w)" ]; then
57                 return
58         fi
59
60         show "Loading ACPI modules..."; busy
61         modprobe --all $MODULES && ok || fail
62 }
63
64 # Start daemons.
65 start() {
66         if [ -f /var/lock/subsys/acpid ]; then
67                 msg_already_running "ACPI Event Daemon"
68                 return
69         fi
70
71         load_modules
72
73         if is_yes "$NETLINK"; then
74                 PROGRAM_ARGS="$PROGRAM_ARGS -n"
75         fi
76         if [ "$CLIENTMAX" ]; then
77                 PROGRAM_ARGS="$PROGRAM_ARGS -C $CLIENTMAX"
78         fi
79
80         # starting:
81         msg_starting "ACPI Event Daemon"
82         daemon /usr/sbin/acpid $PROGRAM_ARGS
83         RETVAL=$?
84         [ $RETVAL -eq 0 ] && touch /var/lock/subsys/acpid
85 }
86
87 # Stop daemons.
88 stop() {
89         if [ ! -f /var/lock/subsys/acpid ]; then
90                 msg_not_running "ACPI Event Daemon"
91                 return
92         fi
93
94         msg_stopping "ACPI Event Daemon"
95         killproc acpid
96         rm -f /var/lock/subsys/acpid >/dev/null 2>&1
97 }
98
99 condrestart() {
100         if [ ! -f /var/lock/subsys/acpid ]; then
101                 msg_not_running "ACPI Event Daemon"
102                 RETVAL=$1
103                 return
104         fi
105
106         stop
107         start
108 }
109
110 reload() {
111         if [ -f /var/lock/subsys/acpid ]; then
112                 msg_not_running "ACPI Event Daemon"
113                 RETVAL=7
114                 return
115         fi
116
117         msg_reloading "ACPI Event Daemon"
118         killproc acpid -HUP
119         RETVAL=$?
120 }
121
122 RETVAL=0
123 # See how we were called.
124 case "$1" in
125   start)
126         start
127         ;;
128   stop)
129         stop
130         ;;
131   restart)
132         stop
133         start
134         ;;
135   try-restart)
136         condrestart 0
137         ;;
138   reload|force-reload)
139         reload
140         ;;
141   load-modules)
142         load_modules
143         ;;
144   status)
145         status acpid
146         ;;
147   *)
148         msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|load-modules|status}"
149         exit 3
150 esac
151
152 exit $RETVAL
This page took 0.035837 seconds and 3 git commands to generate.