xref: /netbsd-src/etc/powerd/scripts/sleep_button (revision 1541a8a5a7284cb2b1cb7df93ff5a30efd551187)
1#!/bin/sh -
2#
3#	$NetBSD: sleep_button,v 1.11 2017/07/13 13:50:48 roy 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	if /sbin/sysctl -q hw.acpi.sleep.state; then
14		/sbin/sysctl -w hw.acpi.sleep.state=3
15	elif /sbin/sysctl -q machdep.xen.suspend; then
16		/sbin/sysctl -w machdep.xen.suspend=1
17	else
18		sleep 1
19		if /etc/rc.d/apmd onestatus >/dev/null ; then
20			/usr/sbin/apm -z
21		else
22			/usr/sbin/apm -d -z
23		fi
24		# ... waking up
25		sleep 1
26	fi
27	;;
28
29released)
30	case "${1}" in
31	vmt0)
32		# Virtual machine is resuming, restart the network
33		/etc/rc.d/dhcpcd restart
34		;;
35	esac
36	;;
37*)
38	logger -p warning "${0}: unsupported event ${2} on device ${1}" >&1
39	exit 1
40	;;
41esac
42