Add new utility and init script swclock that sets the system time based on

the mtime of a file. It saves the shutdown time to this file also.
This is handy for systems without a working RTC chip.
Based on an idea by Michael A. Smith <michael@smith-li.com>.
Fixes Gentoo #272073.
This commit is contained in:
Roy Marples
2009-10-13 08:03:45 +01:00
parent aaa0498bf8
commit a8f6a9b654
11 changed files with 159 additions and 4 deletions

1
init.d/.gitignore vendored
View File

@@ -34,6 +34,7 @@ rc-enabled
rpcbind
savecore
swap-blk
swclock
syslogd
termencoding
ttys

View File

@@ -1,6 +1,6 @@
DIR= ${INITDIR}
SRCS= bootmisc.in fsck.in hostname.in local.in localmount.in netmount.in \
network.in root.in savecache.in swap.in sysctl.in urandom.in
network.in root.in savecache.in swap.in swclock.in sysctl.in urandom.in
BIN= ${OBJS}
# Build our old net foo or not

View File

@@ -22,7 +22,7 @@ start()
fi
fi
local save=
for x in deptree depconfig softlevel nettree rc.log; do
for x in deptree depconfig shutdowntime softlevel nettree rc.log; do
[ -e "$RC_SVCDIR/$x" ] && save="$save $RC_SVCDIR/$x"
done
if [ -n "$save" ]; then

27
init.d/swclock.in Normal file
View File

@@ -0,0 +1,27 @@
#!@PREFIX@/sbin/runscript
# Copyright (c) 2009 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
description="Sets the local clock to the mtime of a given file."
depend()
{
before *
keyword -openvz -prefix -uml -vserver -xenu
}
# swclock is an OpenRC built in
start()
{
ebegin "Setting the local clock based on last shutdown time"
swclock
eend $?
}
stop()
{
ebegin "Saving the shutdown time"
swclock --save
eend $?
}