Ubuntu 16.04 上的 systemd-timesyncd 存在一个错误。首先,问题是因为 systemd-timesyncd.service 具有阻止在 OpenVZ 上启动它的参数(取决于 man 这应该可以正常工作,但事实并非如此):
ConditionVirtualization=!container
这部分问题的解决方案在这里:systemd-timesyncd.service 在 VMWare 上的 Arch 上处于非活动状态。但是,这仍然根本无法解决问题,因为当尝试以...开始时
sudo systemctl start systemd-timesyncd
...结果是这样的:
Aug 01 10:31:02 ingarill systemd[1]: systemd-timesyncd.service: Unit entered failed state.
Aug 01 10:31:02 ingarill systemd[1]: systemd-timesyncd.service: Failed with result 'exit-code'.
Aug 01 10:31:02 ingarill systemd[1]: systemd-timesyncd.service: Service has no hold-off time, scheduling restart.
Aug 01 10:31:02 ingarill systemd[1]: systemd-timesyncd.service: Start request repeated too quickly.
我复制了这个“错误”部分https://www.reddit.com/r/linuxquestions/comments/4vln5o/cant_start_systemdtimesyncdservice/ 其中描述了类似的错误(我认为它与此完全无关)。之后,systemd-timesyncd 状态变为非活动状态,最后状态被描述为“关闭”。
这就是我到目前为止所发现的,希望足以帮助我解决问题。提前致谢!
答案1
在 virtualbox 中为我工作。
sudo mkdir /etc/systemd/system/systemd-timesyncd.service.d/
然后 sudo -s
使用 sudo 执行以下操作不起作用。echo -e "[Unit]\nConditionVirtualization=yes" > /etc/systemd/system/systemd-timesyncd.service.d/enable-with-daemon.conf
告诉 systemd 重新加载sudo systemctl daemon-reload
然后启动本机sudo systemctl start systemd-timesyncd
答案2
我假设您缺少可执行文件。
问:结果是什么
sudo /usr/lib/systemd/systemd-timesyncd
A:没有这样的可执行文件,只有文件夹 boot、catalog、network、user 和 user-generators。
cat /usr/lib/systemd/system/systemd-timesyncd.service
...
[Service]
Type=notify
Restart=always
RestartSec=0
ExecStart=/usr/lib/systemd/systemd-timesyncd
...
该服务启动/usr/lib/systemd/systemd-timesyncd
file /usr/lib/systemd/systemd-timesyncd
/usr/lib/systemd/systemd-timesyncd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=b64971999784b0c648889f282e346d8902e8c1a3, stripped
这是一个可执行文件
sudo pkgfile /usr/lib/systemd/systemd-timesyncd
core/systemd
它与 systemd 软件包一起提供。
开始应该是这样的:
sudo /usr/lib/systemd/systemd-timesyncd
Synchronized to time server 85.214.194.162:123 (0.arch.pool.ntp.org).
重新安装 systemd 软件包检查该可执行文件。只要您的系统上没有它,服务就会失败。
答案3
本例中的问题是 OpenVZ 的使用以及在容器上设置的权限。如果您的提供商启用了 sys_time 权限,那么您可以根据需要设置 VPS 的时间,在其他情况下,您没有足够的权限/能力来更改它,并且应该由配置 OpenVZ 的主机同步。
正如我所读到的,在这种情况下(如果您没有 sys_time 功能)只能由 VPS 提供商在其主 OpenVZ 计算机上设置,并同步到所有节点。