web-dev-qa-db-ja.com

systemd-timesyncd.service startが失敗する

開始しようとしています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
このメッセージはexecute権限がないことを示唆していますが、そうではありません:

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

感嘆符は条件を否定します。つまり、失敗する条件は、「実行可能ファイル/ usr/sbin/ntpdが存在しない場合に有効にする」です。/usr/bin/ntpdが存在し、実行可能であるため、これは失敗します。

この行の背後にあるロジックは、ntpdがインストールされていない場合にのみsystemd-timesyncdを有効にする必要があるということです。そうでなければ、それは冗長で(せいぜい)、ntpdに干渉します(最悪の場合)。あなたまたはあなたのディストリビューションがntpdをインストールしたので、timesyncdのサービスファイルはそれを元に戻し、ntpdをあなたのNTPクライアントにします。

Systemd-timesyncdを調整する場合は、ntpdを削除する必要があります。テストのためだけに試してみたい場合は、/etc/systemd/system/systemd-timesyncd.serviceという名前のファイルを作成して、サービスファイルの行を上書きできます。

ConditionFileIsExecutable=
9
user471751

最初に、以下の2つのケースのいずれかでntpdデーモンを停止して無効にします。

systemctl stop ntpd
systemctl disable ntpd

または

systemctl stop ntp
systemctl disable ntp
0