From: Peter A. Bigot Date: Mon, 30 Apr 2018 12:05:29 +0000 (-0500) Subject: units: add time-set.target X-Git-Tag: v242-rc4~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4ea0f675aef5996ccdb97adc9700564d18f95901;p=thirdparty%2Fsystemd.git units: add time-set.target time-sync.target is supposed to indicate system clock is synchronized with a remote clock, but as used through 241 it only provided a system clock that was updated based on a locally-maintained timestamp. Systems that are powered off for extended periods would not come up with accurate time. Retain the existing behavior using a new time-set.target leaving time-sync.target for cases where accuracy is required. Closes #8861 --- diff --git a/man/systemd.special.xml b/man/systemd.special.xml index b7df5016ce4..248fb924dba 100644 --- a/man/systemd.special.xml +++ b/man/systemd.special.xml @@ -77,6 +77,7 @@ sysinit.target, system-update.target, system-update-pre.target, + time-set.target, time-sync.target, timers.target, umount.target, @@ -950,6 +951,18 @@ the $portmap facility. + + time-set.target + + Services responsible for setting the system clock from + a local source (such as a maintained timestamp file or + imprecise real-time clock) should pull in this target and + order themselves before it. Services where approximate time + is desired should be ordered after this unit, but not pull + it in. This target does not provide the accuracy guarantees + of time-sync.target. + + time-sync.target diff --git a/units/meson.build b/units/meson.build index a53632cd9db..a5610506d51 100644 --- a/units/meson.build +++ b/units/meson.build @@ -104,6 +104,7 @@ units = [ 'sockets.target.wants/'], ['systemd-udevd-kernel.socket', '', 'sockets.target.wants/'], + ['time-set.target', ''], ['time-sync.target', ''], ['timers.target', ''], ['tmp.mount', '', diff --git a/units/systemd-timesyncd.service.in b/units/systemd-timesyncd.service.in index 6512531e1c5..2d8d14f6de0 100644 --- a/units/systemd-timesyncd.service.in +++ b/units/systemd-timesyncd.service.in @@ -14,9 +14,9 @@ ConditionCapability=CAP_SYS_TIME ConditionVirtualization=!container DefaultDependencies=no After=systemd-remount-fs.service systemd-sysusers.service -Before=time-sync.target sysinit.target shutdown.target +Before=time-set.target sysinit.target shutdown.target Conflicts=shutdown.target -Wants=time-sync.target +Wants=time-set.target time-sync.target [Service] AmbientCapabilities=CAP_SYS_TIME diff --git a/units/systemd-tmpfiles-clean.service.in b/units/systemd-tmpfiles-clean.service.in index d1025afadb4..9e2f04bfefd 100644 --- a/units/systemd-tmpfiles-clean.service.in +++ b/units/systemd-tmpfiles-clean.service.in @@ -12,7 +12,7 @@ Description=Cleanup of Temporary Directories Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) DefaultDependencies=no Conflicts=shutdown.target -After=local-fs.target time-sync.target +After=local-fs.target time-set.target Before=shutdown.target [Service] diff --git a/units/time-set.target b/units/time-set.target new file mode 100644 index 00000000000..6b400335298 --- /dev/null +++ b/units/time-set.target @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: LGPL-2.1+ +# +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=System Time Set +Documentation=man:systemd.special(7) +RefuseManualStart=yes diff --git a/units/time-sync.target b/units/time-sync.target index 1533c7c33c9..9106502e8be 100644 --- a/units/time-sync.target +++ b/units/time-sync.target @@ -11,3 +11,5 @@ Description=System Time Synchronized Documentation=man:systemd.special(7) RefuseManualStart=yes +After=time-set.target +Wants=time-set.target