Mit diesem Mechanismus soll sichergestellt werden, dass Bestellbeziehungen hergestellt werden können, die jedoch nur wirksam werden, wenn dies erforderlich ist.
time-sync.target
ist ein Bestellmeilenstein. Alle Dienste , die „Zeitsynchronisation“ liefern angeben , dass sie Before
das time-sync.target
, so dass das Ziel wird nur bereit , wenn „Zeitsynchronisation“ in Kraft ist. Alle Dienste , die „Zeitsynchronisation“ werden wirksam , wenn sie laufen angeben , dass sie brauchen After
das time-sync.target
.
Wenn letztere auch eine Wants
Beziehung zu diesem Ziel hätten, würden sie immer von diesem geordnet werden, da dies immer in der Reihe der Dinge enthalten wäre, die in Ordnung gebracht werden.
Dies wird als suboptimal angesehen, wenn tatsächlich kein konkreter "Zeitsynchronisations" -Dienst vorhanden ist. und die systemd Leute denken, dass eine solche Anordnung in einem solchen Fall nicht in Kraft sein sollte. Vielmehr sollten Dienstleistungen so bestellt werden, als wären time-sync.target
sie nicht vorhanden, sodass einige von ihnen viel früher gestartet werden können, wenn dies ihre "natürliche" Position ohne den Meilenstein ist.
Die Lösung ist time-sync.target
, eigentlich nicht da zu sein. Es wird nicht von den Diensten gewünscht, die voraussichtlich starten, nachdem die Zeitsynchronisation verfügbar ist. Es existiert also nicht in der Menge der bestellten Dinge, wenn nur diese Dienste gestartet werden. Es wird nur in den Satz aufgenommen, wenn ein tatsächlicher "Zeitsynchronisations" -Dienst gestartet wird, wobei dieser (und nicht die Client-Dienste) die Wants
Beziehung hat, die ihn einbringt.
Ziele müssen nicht unbedingt Sammlungen von Diensten sein. Sie können auch Meilensteine bestellen.
Es gibt eine ganze Reihe solcher reinen Meilensteine in systemd und anderswo. Das name-services
Ziel in der Service-Bundle-Sammlung des Nosh-Toolset ist ein ähnlicher Meilenstein für die reine Bestellung.
Weiterführende Literatur
- Jonathan de Boyne Pollard (2018).
system-control
. Nosh Guide . Software.