動かざることバグの如し

近づきたいよ 君の理想に

UbuntuでNTPが自動起動しない件

結論「systemd許さない」

環境

現象

NTPをインストールして時刻調整まではうまくいったのだが、再起動すると起動してない。

なるほど、自動起動の設定ができてなかったなと思って

systemctl enable ntp.service

を実行して再起動するも変わらず。。。

inactive (dead) つまり起動してない

# systemctl status ntp.service
● ntp.service - Network Time Service
   Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:ntpd(8)

原因

systemdがデフォルトでNTPサービスを提供しているから

どういうことなんだよって思うが、本当にそのまま。実はsystemd自体に時刻合わせ機能が実装された

これは以下のコマンドにて確認できる

# systemctl status ntp-systemd-netif.service
● ntp-systemd-netif.service
   Loaded: loaded (/lib/systemd/system/ntp-systemd-netif.service; static; vendor preset: enabled)
   Active: inactive (dead) since Fri 2020-06-12 21:22:25 JST; 6min ago
  Process: 906 ExecStart=/bin/sh -c . /etc/dhcp/dhclient-exit-hooks.d/ntp (code=exited, status=0/SUCCESS)
 Main PID: 906 (code=exited, status=0/SUCCESS)

Jun 12 21:22:25 systemd[1]: Started ntp-systemd-netif.service.

で、ntpの設定でsystemd側のNTPと競合しないようにしてくれている

# grep -i conflict /lib/systemd/system/ntp.service 
Conflicts=systemd-timesyncd.service

解決策

俺はNTPがつかいたいんだ!!!ってことでsystemdの方を無効化

まずは停止

systemctl stop systemd-timesyncd
systemctl stop ntp-systemd-netif

自動起動の無効化

systemctl disable systemd-timesyncd
systemctl disable ntp-systemd-netif

これで再起動すると晴れてntp.service側が起動している。やったね

参考リンク