Čas pomocí Systemd

Tento článek, nebo spíše krátký návod, je následovníkem již dříve zveřejněného návodu na nastavení času v Sabayonu 5. Od té doby uplynulo mnoho vody, nicméně zdá se situace s časem se příliš nezlepšila. Čekal bych že na pracovních stanicích už bude synchronizace s internetovým časem automatická a že se uživatel o takové prkotiny nebude muset zajímat. Možná nastavení času řeší váš WM, ale XFCE čas neřeší a i tak bych spíš očekával systémovější nízkoúrovňové řešení.

Po instalaci ntp se sice v systému objevil ntpdate.service, ale když už nastartoval a nehlásil zrovna chybu “Failed to start Set time via NTP using ntpdate”, stejně neuložil čas do biosu (což ani není jeho úkol). Našel jsem pomoc na wiki Archu a udělal podobné řešení. Vytvořil jsem nový Systemd servis, který po nastavení času uloží  čas do biosu a ukončí se. Zdá se toto řešení funguje dobře, takže jak na to.

Nejdříve nainstalovat ntp pomocí Rigo nebo jako v mém případě Equo

# equo i -a net-misc/ntp

pak vytvořit novou Systemd službu (použijte svůj editor)

# vim /etc/systemd/system/ntp-once.service

do souboru přidejte

[Unit]
Description=Network Time Service (once)
After=network.target nss-lookup.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/ntpd -gqx ; /sbin/hwclock -w

[Install]
WantedBy=multi-user.target

potom servis nastartovat a nastavit na autostart po startu systému

# systemctl start ntp-once.service
# systemctl enable ntp-once.service

v logu journalctl by mohlo být vidět něco podobného, všimněte si přenastaveného času z 18:02 na 17:02

..........
říj 27 18:02:22 comp ntpd[10587]: Listening on routing socket on fd #23 for interface updates
říj 27 17:02:48 comp ntpd[10587]: ntpd: time set -3580.713399 s
říj 27 17:02:48 comp systemd[1]: Time has been changed
..........

Čas se v pořádku uloží i do biosu a tak po restartu drží.

K případné diagnóze použijte stav služby

# systemctl status ntp-once.service

nebo výpis logu

# journalctl -u ntp-once

P.S. Instalován byl net-misc/ntp-4.2.6_p5-r6 na Sabayon 13.08