OpenVZ 容器中的 systemd-timesyncd 错误

OpenVZ 容器中的 systemd-timesyncd 错误

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 计算机上设置,并同步到所有节点。

相关内容