systemd な distro で ntp が動かないとき

CentOS

最近の systemd な Linux ディストリビューションで、システム起動時に ntpd を自動起動するように以下のようにすれば

sudo systemctl enable ntp.service

よさそうに見えて、いくらやっても自動起動しないという問題が発生しがちである。最近は。

というわけで、どうすれば良いかというハナシ。

まず、最近の distro (CentOS-7 / RHEL-7 / Fedora / Ubuntu 16.04 あたり) では、ntpdate パッケージを入れておくと、システム起動時に ntpdate コマンドで時計合わせをしようとするようなスクリプトが動いて、これが ntp と競合して ntpd を殺してしまうようである。というわけで、ntpdate パッケージは削除しておいたほうが間違いない。

CentOS / RHEL:

sudo yum remove ntpdate

Fedora:

sudo dnf remove ntpdate

Ubuntu:

sudo apt remove ntpdate

次に、どうやら最近の distro は ntpd と似たような違うデーモンが動いているようである。redhat 系は chrony、Ubuntu は systemd-timesyncd というものである。これが動いていれば ntpd がいらないのかもしれない。というか正直よくわからない。できれば「ntpq -p」で親 ntp との同期状態を確認したいので、ntpd でいきたい。というわけで、これらを停止する。

CentOS / RHEL / Fedora:

sudo systemctl stop chrony.service
sudo systemctl disable chrony.service

Ubuntu:

sudo systemctl stop systemd-timesyncd.service
sudo systemctl disable systemd-timesyncd.service

で、代替のデーモンがいるということは、デフォルトでは ntpd は入っていないわけだ。なので、インストールしてから自動起動を設定する。

CentOS / RHEL:

sudo yum install ntp
sudo systemctl enable ntp.service
sudo systemctl start ntp.service

Fedora:

sudo dnf install ntp
sudo systemctl enable ntp.service
sudo systemctl start ntp.service

Ubuntu:

sudo apt install ntp
sudo systemctl enable ntp.service
sudo systemctl start ntp.service

ていうか、イマドキ ntpd を使うのはもうレガシーなんだろうか。教えてエライひと

コメント