在各种示例中,我看到了所有这些不同的选择建议:
- WantedBy=timers.target
- WantedBy=多用户.target
- WantedBy=basic.target
- WantedBy=default.target
- WantedBy=mytimer.target(自定义用户定义名称)
但是,在我找到的示例中,没有提供进一步的解释。
以下页面也没有对 WantedBy 提供任何解释:
- https://www.freedesktop.org/software/systemd/man/systemd.timer.html
- https://www.freedesktop.org/software/systemd/man/systemd.time.html
我想了解一种在需要编写 systemd 计时器而不是 cron 作业时可以使用的简单*方法。
*设置一个 cron 作业是 1 行。Systemd 计时器涉及编写两个文件并运行一两个 systemctl 命令。但在我的经验中,仅凭这一事实并不一定是使 systemd 计时器比 cron 更难的原因——它是众多选项和(似乎)缺乏清晰的文档和完整解释的简单示例。
对于简单的用例,使用
WantedBy=timers.target
. 见man systemd.special
:定时器默认依赖于
Before=timers.target
。而且,如果您检查man bootup
,您会看到它basic.target
作为timers.target
依赖项引入。所以我认为WantedBy=basic.target
在大多数情况下似乎都可以正常工作(对于default.target
,通常是multi-user.target
或graphical.target
,两者都在 之后basic.target
)。但:因此,依赖于其他服务单元的更复杂的计时器会更好,
timers.target
而不是依赖于其他任何服务单元。