ntp.service 无法在启动时启动

ntp.service 无法在启动时启动

我正在将系统从 14.04 升级到 16.04,遇到了ntp.service无法在启动时启动的问题。

$ sudo systemctl status ntp.service
● ntp.service - LSB: Start NTP daemon
   Loaded: loaded (/etc/init.d/ntp; bad; vendor preset: enabled)
   Active: active (exited) since Mon 2017-09-11 12:29:11 UTC; 26min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 0
   Memory: 0B
      CPU: 0

Sep 11 12:29:11 ip-10-1-1-20 systemd[1]: Starting LSB: Start NTP daemon...
Sep 11 12:29:11 ip-10-1-1-20 ntp[1254]:  * Starting NTP server ntpd
Sep 11 12:29:11 ip-10-1-1-20 ntp[1254]:    ...done.
Sep 11 12:29:11 ip-10-1-1-20 systemd[1]: Started LSB: Start NTP daemon.
Sep 11 12:29:11 ip-10-1-1-20 ntpd[1372]: proto: precision = 0.222 usec (-22)

如果我没记错的话,该文件的内容ntp.service是由服务生成的sysv。其内容为

$ sudo systemctl cat ntp.service
# /run/systemd/generator.late/ntp.service
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/init.d/ntp
Description=LSB: Start NTP daemon
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
After=network-online.target
After=remote-fs.target
After=systemd-journald-dev-log.socket
Wants=network-online.target

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/etc/init.d/ntp start
ExecStop=/etc/init.d/ntp stop

相关错误文件:

我在 IRC 中询问,他们说从 init 服务到 systemd 服务文件的系统生成文件有时会有错误,并要求我从 ntp.service 的上游版本之一中替换它。

目前,我能想到的解决办法是手动启动和停止 ntpd 服务

$ sudo systemctl stop ntp.service
$ sudo systemctl start ntp.service

但这违背了在启动时自动启动 ntp.service 的目的

将不胜感激任何帮助。

答案1

从 Ubuntu 16.04 开始,NTTP 协议服务已被名为的本机 systemd 服务取代systemd-timesyncd(或者首选时间同步) 并且它默认运行。

如果你只想要一个 NTP 同步时钟,请离开ntp 服务已禁用并用于timedatectl status检查状态:

lar@rv-server:~$ timedatectl status
      Local time: Fri 2018-11-09 14:16:52 PST
  Universal time: Fri 2018-11-09 22:16:52 UTC
        RTC time: n/a
       Time zone: America/Los_Angeles (PST, -0800)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

如果NTP未同步,请使用sudo timedatectl set-ntp on将其打开。


对于 NTP 服务器(不仅仅是客户端),您需要代替timedatectlntpd或安装慢性的(受到推崇的)。

更多详情请阅读:https://help.ubuntu.com/lts/serverguide/NTP.html

答案2

这里记录了多种修复此问题的方法https://bugs.launchpad.net/ubuntu/+source/ntp/+bug/1577596

  1. sed -i -- 's/NTPOPTIONS=""/NTPOPTIONS="-u"/g' /etc/default/ntpdate

  2. 替换内容/etc/network/if-up.d/ntpdatehttps://launchpadlibrarian.net/295277086/ntpdate_HH

完成上述任何一项操作后,

$ systemctl stop ntp.service
$ systemctl start ntp.service

ntp.service现在应该起来了

相关内容