首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >systemd:要求NTP同步

systemd:要求NTP同步
EN

Unix & Linux用户
提问于 2019-04-03 10:21:20
回答 1查看 1.5K关注 0票数 5

我应该把什么放在我的单位文件,以确保我的服务启动后,时间是通过ntp设置的?

我有一个raspberry pi,它有一个小型python脚本,可以将数据记录到SQL数据库。由于rpi没有RTC电池,在启动或没有互联网连接时,时间和数据都是错误的。为了避免数据库中的时间戳误导,脚本应该在获得正确的时间之后运行。

到目前为止我的单位档案:

代码语言:javascript
复制
[Unit]
Description=desc
Requires=mysql.service
After=syslog.target mysql.service

[Service]
Type=simple
ExecStart= /usr/bin/python3 /etc/script/script.py
SyslogIdentifier=test
StandardOutput=null
StandardError=syslog
Restart=always
RestartSec=5
User=pi

[Install]
WantedBy=multi-user.target

我应该如何修改我的单元文件?

我的系统版本是:

代码语言:javascript
复制
#> systemctl --version
systemd 232
EN

回答 1

Unix & Linux用户

发布于 2019-04-20 01:05:07

由于似乎是raspbian使用时间同步,我将调整您的单元文件以依赖于该目标:

代码语言:javascript
复制
[Unit]
Description=desc
Requires=mysql.service
After=syslog.target mysql.service  systemd-timesyncd
#                                 ^^^ the addition ^^^

[Service]
Type=simple
...

如果禁用了支持ntp的timesyncd,则替换NTP服务名称。

它的239+(显示较新的)系统版本支持时间同步服务.听起来更有用,因为它等待时钟已经同步,而不是仅仅是同步进程的开始。

如果短时间的启动时间并不重要,而且您发现您的服务在同步时间之前仍处于启动状态,那么您可能会发现,使用ExecStartPre对服务的启动添加一个短暂的延迟就足够了:

代码语言:javascript
复制
...
ExecStartPre=sleep 30
...

根据实验调整睡眠时间,使你的圆周率能够可靠地同步时间。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/510252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档