commit d5b4f5bd722e75a718399dca7235e77c13f7a712
parent a0c957d73caa2188860e92b2112ff75ee00adb13
Author: Peter Wagner <tripolar@gmx.at>
Date: Mon, 16 Jan 2017 22:28:01 +0100
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>
Diffstat:
3 files changed, 26 insertions(+), 5 deletions(-)
diff --git a/net/ntpd/Makefile b/net/ntpd/Makefile
@@ -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
diff --git a/net/ntpd/files/ntpd.hotplug-helper b/net/ntpd/files/ntpd.hotplug-helper
@@ -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
diff --git a/net/ntpd/files/ntpd.init b/net/ntpd/files/ntpd.init
@@ -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
}