我尝试启动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