我有一个关于为 Systemd 制作我自己的单元(服务)文件的问题。
我已经阅读了文档并有一些问题。四处搜索后,我发现了这个非常有用的答案,其中提供了有关我遇到的一些问题的一些详细信息。
如何编写运行 systemd-tmpfiles 的 systemd .service 文件
虽然我觉得这个答案很有用,但仍有一部分我不明白。主要是这部分:
由于我们实际上希望此服务运行得更晚而不是更早,因此我们指定了一个“After”子句。这实际上不需要与 WantedBy 目标相同(通常不是)
我对 After 的理解是它非常简单。该服务(或您定义的任何服务)将在 After 中列出的单元之后运行。
同样,WantedBy 看起来很简单。您正在定义您列出的单位对您的服务有需求。因此,对于像多用户或图形这样的目标,应该运行您的单元,以便 systemd 考虑达到该目标。
现在,假设我对这些声明如何工作的理解到目前为止是正确的,我的问题是:为什么在 After 和 WantedBy 子句中列出相同的单元会起作用?
例如,定义一个在 multi-user.target 和 WantedBy multi-user.target 之后的单元在我看来会导致不可能的情况,即在达到目标后需要启动该单元,但它也需要开始被视为“达到”的目标。
我误解了什么吗?