存在するこの例システム単位ファイル:
# systemd-timesyncd.service
...
Before=time-sync.target sysinit.target shutdown.target
Conflicts=shutdown.target
Wants=time-sync.target
systemd-timesyncd.service
始めなければならない今後 time-sync.target
。これは注文依存性。
しかし同時にsystemd-timesyncd.service
〜したい time-sync.target
。time-sync.target
そちらも同じだよ要件の依存関係
この関係のユースケースは何ですか?なぜ彼らは互いに衝突しないのですか?
ベストアンサー1
この二重関係のユースケースは、「提供」関係と似ています。systemd-timesyncd
デバイスペアへのすべての依存関係を満たすために時間同期サービスを提供しますtime-sync.target
。時間同期に依存するすべてのサービスに必要なので、これを開始する必要があります。時間同期に依存するすべてのデバイスはサービスで開始する必要があるためtime-sync.target
必要です。time-sync.target
systemd-timesyncd
このような誤解は「欲しい」の理解から始まったようです。 systemdの「欲しい」関係は依存関係ではありません。動作するsystemd-timesyncd
必要はありません。time-sync
これは「次へ始まる」関係です。これは、hive(systemd-timesyncd.service
)がリストされているデバイス(time-sync.target
)がそれから始めたいことを示します。
また、見ることができますsystemdのどのサービスがtime-sync.targetを提供しますか?