我正在阅读 mongod.service 并看到了这个:
After=network-online.target
Wants=network-online.target
这不应该Before
代替吗After
?
根据我的理解,After
开始mongod
后开始network-online.target
。Wants
使network-online.target
开始后mongod
。我认为这里有一个矛盾
答案1
据我了解,After make mongod start after network-online.target 启动。想让 network-online.target 在 mongod 之后启动。我认为这里有一个矛盾
这并不矛盾,因为“想要”和“之后”描述了不同类型的依赖关系。
“After”和“Before”设置顺序依赖关系——即“mongodb 必须在联网后启动”。
“想要”和“需要”设置需求依赖关系——也就是说,“如果你启动了 mongodb,那么你也应该启动网络”。
阅读systemd.unit 手册页有关可以在单元文件中描述的不同类型依赖关系的更详细讨论。
答案2
看来您误解了“Wants”的含义,这里的意思是 mongodb.service 希望 network-online.target 启动,即它希望网络在线,就像“After=network-online.target” ”说,在正常情况下他们说的几乎都是一样的。