1
0
Fork 0
mirror of https://github.com/pygos/init.git synced 2024-12-22 07:10:49 +01:00

Add swclock service for systems without a hardware RTC

Some systems don't have a hardware real time clock and don't know the time
after bootin. An obvious soulution for this is to use time from an ntp
server. Unfortunately that requires domain name resolution, which resolvers
like unbound won't do for us, if the DNSSEC certificates aren't valid, which
they aren't if we start out with a time around 1970-1-1.

The "software clock" service tries to provide a workaround by restoring a
reasonably valid time from a backup file during boot, which we update when
shuting down. If we wan't a more correct time, we have to update it from
NTP in between.

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
This commit is contained in:
David Oberhollenzer 2018-07-22 20:55:34 +02:00
parent 056d3c8e64
commit c3249ae0c9
5 changed files with 20 additions and 1 deletions

2
.gitignore vendored
View file

@ -33,6 +33,8 @@ services/ifcfg
services/ifdown
services/modules
services/hostapd
services/swclock
services/swclocksave
scripts/devfs.sh
scripts/ifrename.sh

View file

@ -56,6 +56,7 @@ AC_DEFINE_DIR(SOCKDIR, localstatedir/run, [Directory for initd socket])
AC_DEFINE_DIR(BINPATH, bindir, [Fully evaluated bin directory])
AC_DEFINE_DIR(SBINPATH, sbindir, [Fully evaluated sbin directory])
AC_DEFINE_DIR(ETCPATH, sysconfdir, [Fulle evaluated etc directory])
AC_DEFINE_DIR(STATEFILESPATH, prefix/var/lib, [Path for persistent state files])
AC_CONFIG_FILES([services/sigkill])
AC_CONFIG_FILES([services/sigterm])
@ -67,6 +68,8 @@ AC_CONFIG_FILES([services/ifcfg])
AC_CONFIG_FILES([services/ifdown])
AC_CONFIG_FILES([services/modules])
AC_CONFIG_FILES([services/hostapd])
AC_CONFIG_FILES([services/swclock])
AC_CONFIG_FILES([services/swclocksave])
AC_CONFIG_FILES([scripts/devfs.sh])
AC_CONFIG_FILES([scripts/ifrename.sh])
AC_CONFIG_FILES([scripts/ifcfg.sh])

View file

@ -7,7 +7,8 @@ init_DATA += services/sysfs services/procfs services/tmpfs
init_DATA += services/vfs services/ifrename services/ifcfg
init_DATA += services/dhcpcd services/dhcpcdmaster services/unbound
init_DATA += services/dnsmasq services/ifdown services/modules
init_DATA += services/network services/hostapd
init_DATA += services/network services/hostapd services/swclock
init_DATA += services/swclocksave
if USYSLOGD
init_DATA += services/usyslogd

6
services/swclock.in Normal file
View file

@ -0,0 +1,6 @@
description restore saved time from last shutdown
type wait
target boot
before sysinit
after vfs modules
exec xargs -a @STATEFILESPATH@/swclock date --utc

7
services/swclocksave.in Normal file
View file

@ -0,0 +1,7 @@
description write current time to backup file
type wait
target %0
after sigkill
before sync
tty truncate @STATEFILESPATH@/swclock
exec date --utc +%%m%%d%%H%%M%%Y.%%S