Systemd

同一個 systemd 服務的“之前”和“想要”?

  • March 21, 2019

這個systemd 單元文件的例子中:

# 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.targettime-sync.target它的需求依賴也是如此

這種關係的案例是什麼?為什麼它們之間沒有衝突?

這種雙重關係的案例類似於“提供”關係。systemd-timesyncd提供時間同步服務,因此它滿足一個單元對time-sync.target. 它必須在之前啟動,time-sync.target因為它對於任何依賴時間同步的服務都是必需的,並且它想要time-sync.target因為任何依賴時間同步的單元都應該與systemd-timesyncd服務一起啟動。

我認為誤解來自您對“想要”的解釋。systemd 中的“想要”關係不是依賴關係:systemd-timesyncd不需要time-sync起作用。這是一個“開始”關係:它表示配置單元 ( systemd-timesyncd.service) 希望列出的單元 ( time-sync.target) 與其一起開始。

另請參閱哪個服務在 systemd 中提供 time-sync.target?

引用自:https://unix.stackexchange.com/questions/507702