mirror of
https://github.com/pygos/init.git
synced 2024-11-16 08:47:10 +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:
parent
056d3c8e64
commit
c3249ae0c9
5 changed files with 20 additions and 1 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -33,6 +33,8 @@ services/ifcfg
|
||||||
services/ifdown
|
services/ifdown
|
||||||
services/modules
|
services/modules
|
||||||
services/hostapd
|
services/hostapd
|
||||||
|
services/swclock
|
||||||
|
services/swclocksave
|
||||||
|
|
||||||
scripts/devfs.sh
|
scripts/devfs.sh
|
||||||
scripts/ifrename.sh
|
scripts/ifrename.sh
|
||||||
|
|
|
@ -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(BINPATH, bindir, [Fully evaluated bin directory])
|
||||||
AC_DEFINE_DIR(SBINPATH, sbindir, [Fully evaluated sbin directory])
|
AC_DEFINE_DIR(SBINPATH, sbindir, [Fully evaluated sbin directory])
|
||||||
AC_DEFINE_DIR(ETCPATH, sysconfdir, [Fulle evaluated etc 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/sigkill])
|
||||||
AC_CONFIG_FILES([services/sigterm])
|
AC_CONFIG_FILES([services/sigterm])
|
||||||
|
@ -67,6 +68,8 @@ AC_CONFIG_FILES([services/ifcfg])
|
||||||
AC_CONFIG_FILES([services/ifdown])
|
AC_CONFIG_FILES([services/ifdown])
|
||||||
AC_CONFIG_FILES([services/modules])
|
AC_CONFIG_FILES([services/modules])
|
||||||
AC_CONFIG_FILES([services/hostapd])
|
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/devfs.sh])
|
||||||
AC_CONFIG_FILES([scripts/ifrename.sh])
|
AC_CONFIG_FILES([scripts/ifrename.sh])
|
||||||
AC_CONFIG_FILES([scripts/ifcfg.sh])
|
AC_CONFIG_FILES([scripts/ifcfg.sh])
|
||||||
|
|
|
@ -7,7 +7,8 @@ init_DATA += services/sysfs services/procfs services/tmpfs
|
||||||
init_DATA += services/vfs services/ifrename services/ifcfg
|
init_DATA += services/vfs services/ifrename services/ifcfg
|
||||||
init_DATA += services/dhcpcd services/dhcpcdmaster services/unbound
|
init_DATA += services/dhcpcd services/dhcpcdmaster services/unbound
|
||||||
init_DATA += services/dnsmasq services/ifdown services/modules
|
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
|
if USYSLOGD
|
||||||
init_DATA += services/usyslogd
|
init_DATA += services/usyslogd
|
||||||
|
|
6
services/swclock.in
Normal file
6
services/swclock.in
Normal 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
7
services/swclocksave.in
Normal 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
|
Loading…
Reference in a new issue