systemd-timesyncd.service 启动失败

systemd-timesyncd.service 启动失败

我尝试启动systemd-timesyncd.service服务但失败:

root@xxxx:~# systemctl start systemd-timesyncd.service
root@xxxx:~# 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 pią 2015-07-10 15:17:56 CEST; 1s ago
           ConditionFileIsExecutable=!/usr/sbin/ntpd was not met
     Docs: man:systemd-timesyncd.service(8)

这是什么意思:ConditionFileIsExecutable=!/usr/sbin/ntpd was not met
此消息表明缺乏执行许可,但事实并非如此:

root@xxxx:~# ls -l /usr/sbin/ntpd
-rwxr-xr-x 1 root root 549648 kwi 10 21:04 /usr/sbin/ntpd

答案1

感叹号否定了条件;换句话说,失败的条件是:“如果可执行文件 /usr/sbin/ntpd 不存在,则启用”。这对您来说失败了,因为 /usr/bin/ntpd 确实存在并且可以执行。

此行背后的逻辑是,只有在未安装 ntpd 的情况下才应启用 systemd-timesyncd;否则,它将是多余的(最好的情况下)或干扰 ntpd(最坏的情况下)。由于您或您的发行版安装了 ntpd,timesyncd 的服务文件会将其关闭,并让 ntpd 成为您的 NTP 客户端。

如果您想要调整 systemd-timesyncd,则应删除 ntpd。如果您只想尝试一下,可以通过创建一个名为的文件覆盖服务文件中的行,该文件的/etc/systemd/system/systemd-timesyncd.service内容如下:

ConditionFileIsExecutable=

答案2

首先,ntpd使用下面两种情况之一停止并禁用守护进程:

systemctl stop ntpd
systemctl disable ntpd

或者

systemctl stop ntp
systemctl disable ntp

相关内容