システムを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を自動的に開始するという目的に反します
これに関する助けをいただければ幸いです。
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 timedatectlをntpd に置き換えるか、インストールする必要があります- chrony(推奨)。
ここに記載されているこの問題を修正する方法はいくつかあります https://bugs.launchpad.net/ubuntu/+source/ntp/+bug/1577596
sed -i -- 's/NTPOPTIONS=""/NTPOPTIONS="-u"/g' /etc/default/ntpdate
/etc/network/if-up.d/ntpdate
の内容を https://launchpadlibrarian.net/295277086/ntpdate_HH に置き換えます
上記のいずれかを行った後、
$ systemctl stop ntp.service
$ systemctl start ntp.service
ntp.service
はすぐに起動するはずです