我的应用程序必须在时间同步的服务器上运行。为此,我安装了ntpd
并检查了ntpstat
的返回值。看起来需要很长时间才能从ntpstat
获得零返回值,尤其是在重启之后。为什么ntpd
如此长时间才能同步?如何在重启后几秒钟实现它?
答案 0 :(得分:3)
要在重启后立即同步ntp
,ntpdate
必须在ntpd
之前运行。
要在systemd中执行此操作,您可以运行
systemctl -a | grep ntp
查看是否启用了ntpdate。要启用它,只需运行
systemctl enable ntpdate
对于使用lsb
脚本的Linux,您可以通过ntpdate
启用chkconfig
。
chkconfig ntpdate on
答案 1 :(得分:2)
是的,因为它被发现 - 启动脚本调用ntpd.service,等待ntpdate.service
运行。
虽然ntpdate不是服务,但是应用程序 - 它通过位于/usr/libexec/ntpdate-wrapper
的好的包装器脚本运行一次,这是检查条件,其中一个 - 如果有任何服务器,在/etc/ntp/step-tickers
描述。如果是 - 它会调用ntpdate与那些服务器,默认情况下由fedora安装程序设置为0.fedoratime.smth.ininternet,这不适合封闭环境。
所以有3种选择:
1.修改ntpdate包装器,他将首先查看ntp.conf
2.修改/etc/ntp/step-tickers
以拥有自己的ntp服务器
3.修改ntpdate.service
以不调用包装器,但只需在其配置中添加/替换行来调用命令:
[Service]
Type=oneshot
ExecStart=/usr/bin/ntpd -q -g -x
RemainAfterExit=yes