chrony: add ntp hotplug provider script
authorMiroslav Lichvar <mlichvar0@gmail.com>
Mon, 18 Dec 2023 11:10:09 +0000 (12:10 +0100)
committerHannu Nyman <hannu.nyman@iki.fi>
Mon, 18 Dec 2023 17:01:44 +0000 (19:01 +0200)
When the service is started, wait for the clock to be synchronized for
up to 5 minutes and provide the stratum action once for ntp hotplug
scripts.

Signed-off-by: Miroslav Lichvar <mlichvar0@gmail.com>
net/chrony/Makefile
net/chrony/files/chrony.ntp-hotplug [new file with mode: 0644]
net/chrony/files/chronyd.init

index 338493bd5c363ae13fdb2f6edacdefd3c9b06179..dc8fd678cc260f2c030c5d2f8ec836eddef3546f 100644 (file)
@@ -85,6 +85,7 @@ define Package/chrony/install
        $(INSTALL_DIR) $(1)/usr/sbin/
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/chronyd $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/chronyc $(1)/usr/bin
+       $(INSTALL_BIN) ./files/chrony.ntp-hotplug $(1)/usr/sbin/chrony-hotplug
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_DIR) $(1)/etc/chrony
diff --git a/net/chrony/files/chrony.ntp-hotplug b/net/chrony/files/chrony.ntp-hotplug
new file mode 100644 (file)
index 0000000..1651b95
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+# Wait for sync for up to 5 minutes and notify other services
+
+/usr/bin/chronyc waitsync 300 1 0.0 1 || exit 0
+
+ubus call hotplug.ntp call '{ "env": [ "ACTION=stratum" ] }'
index a734d431e8de024de36d87b27282368f18a39f83..a043224ec5b50441dabb691d537dd461ac0c8481 100644 (file)
@@ -4,6 +4,7 @@
 START=15
 USE_PROCD=1
 PROG=/usr/sbin/chronyd
+HOTPLUG=/usr/sbin/chrony-hotplug
 CONFIGFILE=/etc/chrony/chrony.conf
 INCLUDEFILE=/var/etc/chrony.d/10-uci.conf
 RTCDEVICE=/dev/rtc0
@@ -79,6 +80,10 @@ start_service() {
        procd_set_param file $INCLUDEFILE
        procd_close_instance
 
+       procd_open_instance
+       procd_set_param command $HOTPLUG
+       procd_close_instance
+
        config_load chrony
        mkdir -p $(dirname $INCLUDEFILE)