summaryrefslogtreecommitdiff
path: root/init.d
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2009-10-13 08:03:45 +0100
committerRoy Marples <roy@marples.name>2009-10-13 08:03:45 +0100
commita8f6a9b6540ca301af625b4767df53860511a6dc (patch)
treea1dd01c8796d117c986f96fd702c3f3c6f2cdba5 /init.d
parentaaa0498bf86baa065656b6a5c37cff82c032eb6d (diff)
downloadopenrc-a8f6a9b6540ca301af625b4767df53860511a6dc.tar.gz
openrc-a8f6a9b6540ca301af625b4767df53860511a6dc.tar.bz2
openrc-a8f6a9b6540ca301af625b4767df53860511a6dc.tar.xz
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.
Diffstat (limited to 'init.d')
-rw-r--r--init.d/.gitignore1
-rw-r--r--init.d/Makefile2
-rw-r--r--init.d/savecache.in2
-rw-r--r--init.d/swclock.in27
4 files changed, 30 insertions, 2 deletions
diff --git a/init.d/.gitignore b/init.d/.gitignore
index 5e1e1ec..94a40e2 100644
--- a/init.d/.gitignore
+++ b/init.d/.gitignore
@@ -34,6 +34,7 @@ rc-enabled
rpcbind
savecore
swap-blk
+swclock
syslogd
termencoding
ttys
diff --git a/init.d/Makefile b/init.d/Makefile
index b816ae7..0786e05 100644
--- a/init.d/Makefile
+++ b/init.d/Makefile
@@ -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
diff --git a/init.d/savecache.in b/init.d/savecache.in
index 799b8bc..2c981c6 100644
--- a/init.d/savecache.in
+++ b/init.d/savecache.in
@@ -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
diff --git a/init.d/swclock.in b/init.d/swclock.in
new file mode 100644
index 0000000..ab076c3
--- /dev/null
+++ b/init.d/swclock.in
@@ -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 $?
+}