web-dev-qa-db-ja.com

ntp.serviceが起動時に開始されない

システムを14.04から16.04にアップグレードしていますが、ntp.serviceが起動時に開始されないという問題に直面しています。

$ Sudo systemctl status ntp.service
● ntp.service - LSB: Start NTP daemon
   Loaded: loaded (/etc/init.d/ntp; bad; vendor preset: enabled)
   Active: active (exited) since Mon 2017-09-11 12:29:11 UTC; 26min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 0
   Memory: 0B
      CPU: 0

Sep 11 12:29:11 ip-10-1-1-20 systemd[1]: Starting LSB: Start NTP daemon...
Sep 11 12:29:11 ip-10-1-1-20 ntp[1254]:  * Starting NTP server ntpd
Sep 11 12:29:11 ip-10-1-1-20 ntp[1254]:    ...done.
Sep 11 12:29:11 ip-10-1-1-20 systemd[1]: Started LSB: Start NTP daemon.
Sep 11 12:29:11 ip-10-1-1-20 ntpd[1372]: proto: precision = 0.222 usec (-22)

ntp.serviceファイルの内容は、私が間違っていなければsysvサービスによって生成されています。内容は

$ Sudo systemctl cat ntp.service
# /run/systemd/generator.late/ntp.service
# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/init.d/ntp
Description=LSB: Start NTP daemon
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
After=network-online.target
After=remote-fs.target
After=systemd-journald-dev-log.socket
Wants=network-online.target

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/etc/init.d/ntp start
ExecStop=/etc/init.d/ntp stop

関連するバグファイル:

IRCで尋ねると、initサービスからsystemdサービスファイルへのシステム生成ファイルは時々バグがあり、ntp.serviceのアップストリームバージョンの1つから置き換えるように頼まれました。

今、私が思いついた修正は、ntpdサービスを手動で開始および停止する必要があるということです

$ Sudo systemctl stop ntp.service
$ Sudo systemctl start ntp.service

しかし、これはブート時にntp.serviceを自動的に開始するという目的に反します

これに関する助けをいただければ幸いです。

1
Tasdik Rahman

Ubuntu 16.04の時点で、ntpサービスはsystemd-timesyncd(またはprefer-timesyncd)という名前のネイティブsystemdサービスに置き換えられました。デフォルトで実行されます。

NTP同期クロックが必要な場合は、ntp.service無効のままにして、timedatectl statusを使用してステータスを確認します。

lar@rv-server:~$ timedatectl status
      Local time: Fri 2018-11-09 14:16:52 PST
  Universal time: Fri 2018-11-09 22:16:52 UTC
        RTC time: n/a
       Time zone: America/Los_Angeles (PST, -0800)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

NTPが同期されていない場合は、Sudo timedatectl set-ntp onを使用してオンにします。


NTPサーバー(クライアントだけではない)の場合、 replace timedatectlntpd に置き換えるか、インストールする必要があります- chrony(推奨)。

詳細はこちら: https://help.ubuntu.com/lts/serverguide/NTP.html

2
patricktokeeffe

ここに記載されているこの問題を修正する方法はいくつかあります https://bugs.launchpad.net/ubuntu/+source/ntp/+bug/1577596

  1. sed -i -- 's/NTPOPTIONS=""/NTPOPTIONS="-u"/g' /etc/default/ntpdate

  2. /etc/network/if-up.d/ntpdateの内容を https://launchpadlibrarian.net/295277086/ntpdate_HH に置き換えます

上記のいずれかを行った後、

$ systemctl stop ntp.service
$ systemctl start ntp.service

ntp.serviceはすぐに起動するはずです

0
Tasdik Rahman