Commit Graph

4 Commits

Author SHA1 Message Date
Stefan Agner
ea5acb0950 Fix delaying systemd-timesyncd start correctly (#2082)
Unfortunately, orderings like Before= cannot be overriden by vendor
settings. This is mentioned in "Example 2. Overriding vendor settings"
on https://www.freedesktop.org/software/systemd/man/systemd.unit.html.

Correctly fix ordering by overriding the entire unit.
2022-08-24 23:02:09 +02:00
Stefan Agner
f8c8198bb9 Fix delaying systemd-timesyncd start (#2069)
* Fix delaying systemd-timesyncd

Setting WantedBy=time-sync.target in a service.d config file does not
clear previous assignments of WantedBy. This caused the services to still
be pulled in by the sysinit.target, causing a ordering cycle and the
system to not start essential services.

* Remove sysinit.target from Before ordering
2022-08-18 15:51:07 +02:00
Stefan Agner
7a693bed46 Delay systemd-timesyncd start after network is deemed online (#2068)
With commit 2d3119ef22 ("Delay Supervisor start until time has been
sychronized (#1360)") systemd-time-wait-sync.service got enabled, which
waits until systemd-timesyncd synchronizes time with a NTP server.

By default systemd-timesyncd.service and systemd-time-wait-sync.service
are pulled in by sysinit.target. This starts the services before full
network connectivity is established. The first sychronization fails and
systemd-timesyncd only retries after a ratelimit mechanism times out.
This causes a dealy of 30s during startup. While systemd-timesyncd has
a mechanism to (re)try time synchronization when network becomes
online, it seems that those only work properly when systemd-networkd
is used, see also https://github.com/systemd/systemd/issues/24298.

Simply reordering systemd-timesyncd.service after network-online.target
does not work as it causes circular dependencies (NetworkManager itself
depends ultimately on the sysinit.target).

With this change, the services are only pulled in by time-sync.target.
That allows to order the service after network-online.target. With that
the first synchronization succeeds.

This mechanism also works when a NTP server is provided through DHCP.
In that case, a the systemd-timesyncd service is started by the dispatch
script /usr/lib/NetworkManager/dispatcher.d/10-ntp before the systemd
even considers starting the service. Tests show that the default
fallback NTP is not contacted, only the DHCP provided service.
2022-08-17 18:51:35 +02:00
Pascal Vizeli
38c1df36c0 Fix time on overlay (#88)
* Fix time on overlay

* Fix rights

* Fix timesync
2018-07-08 00:43:46 +02:00