summaryrefslogtreecommitdiff
path: root/pm/sleep.d/90clock
blob: 34df62e6f929ae3120c23a4b0dc138bacfaa528a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh
. "${PM_FUNCTIONS}"

NTPD_LOCK="/var/run/pm-utils/pm-ntpd.lock"

suspend_clock() {
	if try_lock "${NTPD_LOCK}"; then
		trap 'release_lock "${NTPD_LOCK}"' 0
		stopservice ntpd
	fi
	/sbin/hwclock --systohc >/dev/null 2>&1 0<&1
	return $?
}

resume_clock() {
	/sbin/hwclock --hctosys >/dev/null 2>&1 0<&1
	rc=$?
	# Bring back ntpd _after_ NetworkManager and such come back...
	( 	spin_lock "${NTPD_LOCK}";
		trap 'release_lock "${NTPD_LOCK}"' 0
		sleep 20; 
		restartservice ntpd; ) &
	return $rc
}

case "$1" in
	hibernate|suspend)
		suspend_clock
		;;
	thaw|resume)
		resume_clock
		;;
	*)
		;;
esac

exit $?