Kar*_*nth 2 linux time systemd
我有一个 RPi3。由于它没有硬件时钟,我有一个服务可以tlsdate
与本地服务器同步时间。(这是在每次启动时触发。由于频繁断电而定期触发)。
我还有一个计时器mysync.timer
启动mysync.service
的同步操作我的日历。这会使用OAuth
,如果时间不匹配,则会出错。
有没有办法启动tlsdate.service
before mysync.service
,每次mysync.service
运行?
我查看了 systemd 文档并找到了Before=
and After=
,但我不确定如何将它与计时器一起使用。
您需要做的就是添加一个After
and Wants
in mysync.service
:
After=tlsdate.service
Wants=tlsdate.service
Run Code Online (Sandbox Code Playgroud)
这将导致tlsdate.service
启动之前mysync.service
。如果您想确保之前tlsdate
已完成mysync
,您可能需要确保tlsdate
是Type=oneshot
,而不是默认的Type=simple
。
两者的区别是After
指定了两者同时启动的顺序,而Wants
导致tlsdate
启动时mysync
启动。因此,您需要同时指定顺序和依赖项。
如果你想要一个硬依赖,即如果不能启动mysync
应该失败tlsdate
,那么你应该使用Requires
:
After=tlsdate.service
Requires=tlsdate.service
Run Code Online (Sandbox Code Playgroud)
您应该能够完全忽略计时器。定时器将启动mysync.service
,但你真正想要的是在依赖mysync.service
是tlsdate.service
第一次启动时,不管它无论是通过定时器或不会被触发。
归档时间: |
|
查看次数: |
1640 次 |
最近记录: |