是什么阻止 Ubuntu 16.04 正确设置时间

是什么阻止 Ubuntu 16.04 正确设置时间

我有一台运行 XUbuntu 16.04 的 Dell SC1430,用作 Mythtv 后端服务器。它运行良好很多年了,但现在从 12.04 升级到 14.04 再到 16.04(使用 do-release-upgrade)后,系统时间偏差了 2 个小时,无法设置为正确的时间。

当我或任何机制(例如ntpdtimesyncd)尝试设置时间时,它会立即改回。我在尝试时在系统日志中收到此信息ntpd

Sep 17 12:32:33 eddie ntpd[21484]: proto: precision = 0.131 usec (-23)
Sep 17 12:32:33 eddie ntpd[21484]: restrict 0.0.0.0: KOD does nothing without LIMITED.
Sep 17 12:32:33 eddie ntpd[21484]: restrict ::: KOD does nothing without LIMITED.
Sep 17 12:32:33 eddie ntpd[21484]: Listen and drop on 0 v6wildcard [::]:123
Sep 17 12:32:33 eddie ntpd[21484]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Sep 17 12:32:33 eddie ntpd[21484]: Listen normally on 2 lo 127.0.0.1:123
Sep 17 12:32:33 eddie ntpd[21484]: Listen normally on 3 eth0 192.168.1.11:123
Sep 17 12:32:33 eddie ntpd[21484]: Listen normally on 4 lo [::1]:123
Sep 17 12:32:33 eddie ntpd[21484]: Listen normally on 5 eth0 [fe80::219:b9ff:fe22:9d01%2]:123
Sep 17 12:32:33 eddie ntpd[21484]: Listening on routing socket on fd #22 for interface updates
Sep 17 10:32:52 eddie systemd[28438]: Time has been changed
Sep 17 10:32:52 eddie ntpd[21484]: ntpd: time set -7188.398130 s
Sep 17 10:32:52 eddie systemd[2506]: Time has been changed
Sep 17 10:32:52 eddie systemd[1]: Time has been changed
Sep 17 12:32:41 eddie systemd[28438]: Time has been changed
Sep 17 12:32:41 eddie systemd[2506]: Time has been changed
Sep 17 12:32:41 eddie systemd[1]: Time has been changed

正如您所见,时间实际上发生了片刻变化,然后某些东西又将其改回。

Timedatectl 状态给我:

root@eddie:~# timedatectl status 
      Local time: Sun 2017-09-17 14:24:12 CEST
  Universal time: Sun 2017-09-17 12:24:12 UTC
        RTC time: Sun 2017-09-17 12:24:12
       Time zone: Europe/Stockholm (CEST, +0200)
 Network time on: no
NTP synchronized: no
 RTC in local TZ: no

在此示例中,UTC 应为 10:24:12,而当地时间应为 12:24:12。

我最好的猜测是,其他一些程序/进程(试图)保持时间正确,但在升级后与时区或其他内容混淆。

正如我上面所建议的,我尝试使用 NTP 来代替该timedatectl方法,但行为完全相同。

这不是我读到的其他人遇到的双启动情况。

任何帮助将不胜感激!

答案1

我有点不确定问题是什么,但我通过以下方式解决了它:

  1. 确保 ntp 服务不会在启动时启动(将 chmodding -x 改为 /usr/sbin/ntpd)
  2. 通过服务器上的键盘登录,而不是从另一个客户端使用 ssh 登录。
  3. 在 GUI 中重置时区并打开“网络时间”
  4. 重启
  5. 确保 ntp 服务在启动时启动
  6. 再次重启

一些评论:在我尝试正确设置时间后,系统日志中似乎有一些 systemd 服务正在重置时间。进程 id:s 显示我通过 ssh 登录负责其中一个进程,而 lightdm 负责另一个进程。因此,我通过键盘登录服务器本身,只运行一个 systemd 时间服务。

此外,systemctl status systemd-timesyncd.service 报告:

● systemd-timesyncd.service - Network Time Synchronization
   Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
           └─disable-with-time-daemon.conf
   Active: inactive (dead)
Condition: start condition failed at Sun 2017-09-17 16:09:41 CEST; 4min 35s ago
           ConditionFileIsExecutable=!/usr/sbin/ntpd was not met

因此 /usr/sbin/ntpd 的 chmodding

相关内容