ntp: correct systemd EnvironmentFile, add ntpdate service

Eliminate EnvironmentFile from systemd unit descriptions.  /etc/ntp.conf
can't be sourced to set environment variables like NTPD_ARG.  Following the
rationale at http://0pointer.de/blog/projects/on-etc-sysinit.html it isn't
needed anyway; if you don't buy that, it should be:

  EnvironmentFile=-/etc/default/ntpd

Add one-shot ntpdate service which synchronizes local clock prior to
starting ntpd (which aborts if the local time is more than 1000 seconds off
of the server).  "systemctl enable ntpdate.service" not done by default
because this would be a behavior change.

Correct comment describing how to replace ntpdate (ntpdc doesn't take those
arguments).

Add comment to ntp.conf pointing out need to remove local hardware clock as
a reference when simulating ntpdate.

Signed-off-by: Peter A. Bigot <bigotp@acm.org>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
Peter A. Bigot
2012-01-04 02:21:05 +00:00
committed by Koen Kooi
parent dc32361d19
commit 42d6f4f366
5 changed files with 18 additions and 4 deletions
@@ -7,6 +7,7 @@ driftfile /etc/ntp.drift
# as required, or change this. # as required, or change this.
server pool.ntp.org server pool.ntp.org
# Using local hardware clock as fallback # Using local hardware clock as fallback
# Disable this when using ntpd -q -g -x as ntpdate or it will sync to itself
server 127.127.1.0 server 127.127.1.0
fudge 127.127.1.0 stratum 14 fudge 127.127.1.0 stratum 14
# Defining a default security setting # Defining a default security setting
@@ -5,8 +5,7 @@ After=network.target
[Service] [Service]
Type=forking Type=forking
PIDFile=/run/ntpd.pid PIDFile=/run/ntpd.pid
EnvironmentFile=/etc/ntp.conf ExecStart=/usr/bin/ntpd -p /run/ntpd.pid
ExecStart=/usr/bin/ntpd $NTPD_ARGS -p /run/ntpd.pid
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
@@ -0,0 +1,11 @@
[Unit]
Description=Network Time Service (one-shot ntpdate mode)
Before=ntpd.service
[Service]
Type=oneshot
ExecStart=/usr/bin/ntpd -q -g -x
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
+2 -1
View File
@@ -28,7 +28,8 @@ EXTRA_OECONF = "--without-openssl --without-crypto ac_cv_header_readline_history
CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED" CFLAGS_append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED"
PACKAGES += "ntpdate ${PN}-bin ${PN}-tickadj ${PN}-utils" PACKAGES += "ntpdate ${PN}-bin ${PN}-tickadj ${PN}-utils"
# NOTE: you don't need ntpdate, use "ntpdc -q -g -x" # NOTE: you don't need ntpdate, use "ntpd -q -g -x"
# or the ntpdate systemd service
# This should use rc.update # This should use rc.update
FILES_ntpdate = "${bindir}/ntpdate ${sysconfdir}/init.d/ntpdate" FILES_ntpdate = "${bindir}/ntpdate ${sysconfdir}/init.d/ntpdate"
+3 -1
View File
@@ -1,6 +1,6 @@
require ntp.inc require ntp.inc
PR = "r3" PR = "r4"
inherit systemd inherit systemd
@@ -13,6 +13,7 @@ SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${P}.tar.gz \
file://ntpd \ file://ntpd \
file://ntp.conf \ file://ntp.conf \
file://ntpdate \ file://ntpdate \
file://ntpdate.service \
file://ntpd.service \ file://ntpd.service \
" "
@@ -29,6 +30,7 @@ do_install_append() {
install -m 755 ${WORKDIR}/ntpdate ${D}/${sysconfdir}/network/if-up.d install -m 755 ${WORKDIR}/ntpdate ${D}/${sysconfdir}/network/if-up.d
install -d ${D}${base_libdir}/systemd/system install -d ${D}${base_libdir}/systemd/system
install -m 0644 ${WORKDIR}/ntpdate.service ${D}${base_libdir}/systemd/system/
install -m 0644 ${WORKDIR}/ntpd.service ${D}${base_libdir}/systemd/system/ install -m 0644 ${WORKDIR}/ntpd.service ${D}${base_libdir}/systemd/system/
} }