![网络时钟后启动 systemd 服务](https://linux22.com/image/1599340/%E7%BD%91%E7%BB%9C%E6%97%B6%E9%92%9F%E5%90%8E%E5%90%AF%E5%8A%A8%20systemd%20%E6%9C%8D%E5%8A%A1.png)
我的 systemd 服务在启动时启动,并创建一个带有时间戳的日志文件。
但是,由于它是在没有实时时钟的设备(Raspberry)中运行,它会在从互联网获取时间并开始正确执行之前写入一些带有上次启动错误时间戳的行(4G / LTE 连接大约需要一分钟才能连接)。
我该如何让服务在启动前等待正确的互联网时间?我希望它在几分钟后即使时间错误也能启动,以防无法连接。
答案1
根据 systemd.special(8),您需要对您的服务进行排序After=time-sync.target
。(还有一个类似的time-set.target
,它不提供准确性保证,只是时钟大致没问题。)
时间同步守护进程需要在 time-sync.target 之前正确排序,但您也可以让该systemd-time-wait-sync.service
单元等待内核报告 NTP 同步。