ntpd: add hotplug script that signals when ntp reaches the stratum level like the sysntp implementation

use ntpq to check the status of the ntp server as all other status scripts included in the ntp tarball are
	based on perl which would dramatically increase the footprint of ntpd

Signed-off-by: Peter Wagner <tripolar@gmx.at>
This commit is contained in:
Peter Wagner 2017-01-16 22:28:01 +01:00
parent a0c957d73c
commit d5b4f5bd72
3 changed files with 26 additions and 5 deletions

View file

@ -13,7 +13,7 @@ PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/
PKG_MD5SUM:=857452b05f5f2e033786f77ade1974ed
PKG_HASH:=b724287778e1bac625b447327c9851eedef020517a3545625e9f652a90f30b72
PKG_LICENSE:=Unique
PKG_LICENSE_FILES:=COPYRIGHT html/copyright.html
@ -115,6 +115,9 @@ CONFIGURE_ARGS += \
define Package/ntpd/install
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ntpd/ntpd $(1)/sbin/
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ntpq/ntpq $(1)/usr/sbin/
$(INSTALL_BIN) ./files/ntpd.hotplug-helper $(1)/usr/sbin/ntpd.hotplug-helper
$(INSTALL_DIR) $(1)/etc
$(INSTALL_CONF) ./files/ntp.conf $(1)/etc/
$(INSTALL_DIR) $(1)/etc/init.d
@ -145,7 +148,6 @@ endef
define Package/ntp-utils/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ntpdc/ntpdc $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ntpq/ntpq $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/util/ntptime $(1)/usr/sbin/
endef

View file

@ -0,0 +1,15 @@
#!/bin/sh
HOTPLUG_SCRIPT=/usr/sbin/ntpd-hotplug
while true
do
STATUS="$(ntpq -c 'rv 0 stratum'|awk -F '=' '{ print $2 }')"
if [ -n "$STATUS" ] && [ "$STATUS" -lt "16" ]
then
ACTION="stratum" /sbin/hotplug-call ntp
exit 0
fi
sleep 10
done

View file

@ -5,14 +5,18 @@ START=65
STOP=65
USE_PROCD=1
PROG=/sbin/ntpd
HOTPLUG_HELPER=/usr/sbin/ntpd.hotplug-helper
start_service() {
# ln -sf /dev/ttyS0 /dev/gps0
# /usr/sbin/setgarmin -d /dev/gps -c /etc/setgarmin.conf
mkdir -p /var/lib/ntp
chown -R ntp:ntp /var/lib/ntp
procd_open_instance
procd_set_param command /sbin/ntpd -g -u ntp:ntp -p /var/run/ntpd.pid -n
procd_set_param command $PROG -g -u ntp:ntp -p /var/run/ntpd.pid -n
procd_close_instance
procd_open_instance
procd_set_param command $HOTPLUG_HELPER
procd_close_instance
}