xref: /netbsd-src/etc/powerd/scripts/sleep_button (revision ca453df649ce9db45b64d73678ba06cbccf9aa11)
1#!/bin/sh -
2#
3#	$NetBSD: sleep_button,v 1.8 2011/05/27 09:28:42 plunky Exp $
4#
5# Generic script for sleep button events.
6#
7# Arguments passed by powerd(8):
8#
9#	device event
10
11case "${2}" in
12pressed)
13
14	/etc/rc.d/bluetooth stop
15	/etc/rc.d/ntpd stop
16	/etc/rc.d/dhclient stop
17	/etc/rc.d/network stop
18	/etc/rc.d/wpa_supplicant stop
19
20	if /sbin/sysctl hw.acpi.sleep.state >/dev/null 2>&1; then
21		/sbin/sysctl -w hw.acpi.sleep.state=3
22	else
23		sleep 1
24		if /etc/rc.d/apmd onestatus >/dev/null ; then
25			/usr/sbin/apm -z
26		else
27			/usr/sbin/apm -d -z
28		fi
29		# ... waking up
30		sleep 1
31	fi
32
33	/etc/rc.d/wpa_supplicant start
34	/etc/rc.d/network start
35	/etc/rc.d/dhclient start
36	/etc/rc.d/ntpdate start
37	/etc/rc.d/ntpd start
38	/etc/rc.d/bluetooth start
39	;;
40
41released)
42	# Note that we don't really need to handle a released event here,
43	# so we can gracefully exit.
44	;;
45*)
46	logger -p warning "${0}: unsupported event ${2} on device ${1}" >&1
47	exit 1
48	;;
49esac
50