Skip to content
Merged
Show file tree
Hide file tree
Changes from 52 commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
209fed7
Squashed commit of the following:
Sindhuja-Muthukrishnan Mar 6, 2026
ff4de02
Update systimemgr_git.bb
sindhu-krishnan Mar 6, 2026
a3806be
Apply suggestion from @Copilot
sindhu-krishnan Mar 9, 2026
7e21c81
Update chrony-conf-update.sh
sindhu-krishnan Mar 9, 2026
7c9f478
Update chrony-sync-notify.sh
sindhu-krishnan Mar 9, 2026
0fc33a7
Update chrony-sync-notify.service
sindhu-krishnan Mar 9, 2026
2064cfc
Update chrony-sync-notify.sh
sindhu-krishnan Mar 9, 2026
06f80bc
Update chrony-tracking.service
sindhu-krishnan Mar 9, 2026
f3d603f
Update chrony-tracking.service
sindhu-krishnan Mar 9, 2026
e8d62b1
Update chrony-tracking.timer
sindhu-krishnan Mar 9, 2026
fb1e339
Update chrony.conf
sindhu-krishnan Mar 9, 2026
2d281a5
Update chrony_tracking.sh
sindhu-krishnan Mar 9, 2026
a6d51c0
Update chrony-tracking.service
sindhu-krishnan Mar 9, 2026
a6af6f8
Update chrony_%.bbappend
sindhu-krishnan Mar 9, 2026
6f9cbca
Update chrony-sync-notify.sh
sindhu-krishnan Mar 9, 2026
c089159
Update chrony-conf-update.sh
sindhu-krishnan Mar 9, 2026
c187fdb
Update systimemgr_git.bb
sindhu-krishnan Mar 9, 2026
743079c
Update chrony_%.bbappend
sindhu-krishnan Mar 9, 2026
020dcd9
Update chrony-sync-notify.sh
sindhu-krishnan Mar 9, 2026
fd5e8e4
Apply suggestion from @Copilot
sindhu-krishnan Mar 9, 2026
75a616f
Update chrony-tracking.timer
sindhu-krishnan Mar 9, 2026
bbe4013
Update chrony-tracking.service
sindhu-krishnan Mar 9, 2026
8222256
Update chrony-tracking.timer
sindhu-krishnan Mar 9, 2026
3ad063f
Update chrony_%.bbappend
sindhu-krishnan Mar 9, 2026
6f3b605
Update rdk.conf
sindhu-krishnan Mar 9, 2026
9f96459
Apply suggestion from @Copilot
sindhu-krishnan Mar 9, 2026
c98feab
Apply suggestion from @Copilot
sindhu-krishnan Mar 9, 2026
25e07f6
Update chrony-tracking.service
sindhu-krishnan Mar 9, 2026
5c73a64
Update chrony.conf
sindhu-krishnan Mar 9, 2026
762de71
Update chrony_%.bbappend
sindhu-krishnan Mar 9, 2026
d5e81b1
Update chrony_%.bbappend
sindhu-krishnan Mar 9, 2026
93b0328
Update chrony_%.bbappend
sindhu-krishnan Mar 9, 2026
e79cfaa
Update chrony_%.bbappend
sindhu-krishnan Mar 9, 2026
3edd7d9
Update chrony-conf-update.sh
sindhu-krishnan Mar 9, 2026
7ddf68b
Update chrony.conf
sindhu-krishnan Mar 9, 2026
3ba0ed7
Update rdk_chrony.conf
sindhu-krishnan Mar 9, 2026
5ce5546
Update chronyd.service
sindhu-krishnan Mar 9, 2026
b0a07f0
Update chrony-conf-update.sh
sindhu-krishnan Mar 9, 2026
6dff2da
Update chrony-conf-update.sh
sindhu-krishnan Mar 9, 2026
9e1f056
Update rdk.conf
sindhu-krishnan Mar 9, 2026
3661cc1
Update chrony-sync-notify.sh
sindhu-krishnan Mar 9, 2026
42ca1ce
Update chrony_%.bbappend
sindhu-krishnan Mar 9, 2026
82d0261
Update chrony-conf-update.sh
sindhu-krishnan Mar 10, 2026
aea254f
Update chrony-conf-update.sh
sindhu-krishnan Mar 10, 2026
a7474d8
Update chronyd.service
sindhu-krishnan Mar 10, 2026
186428f
Update chrony-conf-update.sh
sindhu-krishnan Mar 10, 2026
8473ca9
Update systimemgr_git.bb
sindhu-krishnan Mar 10, 2026
8f21c96
Update chrony-conf-update.sh
sindhu-krishnan Mar 10, 2026
00b9681
Update chrony-conf-update.sh
sindhu-krishnan Mar 10, 2026
5ede993
Update chrony-conf-update.sh
sindhu-krishnan Mar 10, 2026
2b738ab
Update chrony-conf-update.sh
sindhu-krishnan Mar 10, 2026
430e31d
Update chrony-conf-update.sh
sindhu-krishnan Mar 10, 2026
61a0d58
Update chrony-conf-update.sh
sindhu-krishnan Mar 10, 2026
f4d8dc5
Update chrony-conf-update.sh
sindhu-krishnan Mar 10, 2026
1902e5a
Update chrony-sync-notify.sh
sindhu-krishnan Mar 10, 2026
4708928
Update chrony-sync-notify.sh
sindhu-krishnan Mar 10, 2026
590a088
Update chrony-sync-notify.sh
sindhu-krishnan Mar 11, 2026
3d643ab
Merge pull request #644 from rdkcentral/develop
sindhu-krishnan Mar 11, 2026
563cb92
Update chrony-sync-notify.sh
sindhu-krishnan Mar 11, 2026
af50cbb
Update chrony-sync-notify.service
sindhu-krishnan Mar 11, 2026
a8d26f0
Update chrony-sync-notify.sh
sindhu-krishnan Mar 11, 2026
7c8d5e2
Update chrony_%.bbappend
sindhu-krishnan Mar 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions conf/distro/rdk.conf
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ VOLATILE_BINDS:append = "/var/volatile/asound.conf /etc/asound.conf\n"
VOLATILE_BINDS:append = "/var/volatile/resolv.dnsmasq /etc/resolv.dnsmasq\n"
VOLATILE_BINDS:append = "/var/volatile/hosts /etc/hosts\n"
VOLATILE_BINDS:append = "/var/volatile/hostname /etc/hostname\n"
VOLATILE_BINDS:append = "/var/volatile/rdk_chrony.conf /etc/rdk_chrony.conf\n"
VOLATILE_BINDS:append = "/var/volatile/dhcp_static_hosts /etc/dhcp_static_hosts\n"
VOLATILE_BINDS:append = "/var/volatile/cron /var/spool/cron\n"
VOLATILE_BINDS:append:hybrid = "/tmp/snmpd.conf /etc/snmp/snmpd.conf\n"
Expand Down
4 changes: 2 additions & 2 deletions recipes-common/systimemgr/systimemgr_git.bb
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"

DEPENDS = "systimemgrinetrface systimemgrfactory rdk-logger libsyswrapper wpeframework-clientlibraries telemetry"

SRCREV_systemtimemgr = "f7c52d3ebe5203134d7ecc242f86fbbd96d39c05"
SRCREV_systemtimemgr = "8ee691e928fe927e05a07f9e1c10bf6a0ecf089d"
SRC_URI = "${CMF_GITHUB_ROOT}/systemtimemgr;${CMF_GITHUB_SRC_URI_SUFFIX};name=systemtimemgr"

SRC_URI:append = " file://systimemgr.conf "
SRC_URI:append = " file://secure.conf "

PACKAGE_ARCH = "${MIDDLEWARE_ARCH}"
SRCREV_FORMAT = "systemtimemgr"
PV = "1.4.0"
PV = "1.5.0"
PR = "r0"

CXXFLAGS += " -I${PKG_CONFIG_SYSROOT_DIR}/${includedir}/WPEFramework/powercontroller"
Expand Down
61 changes: 61 additions & 0 deletions recipes-support/chrony/chrony_%.bbappend
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"

RDEPENDS:${PN} += "bash"

SRC_URI += "file://chrony.conf \
file://chronyd.service \
file://rdk_chrony.conf \
file://chrony-sync-notify.sh \
file://chrony-sync-notify.service \
file://chrony-conf-update.sh \
file://chrony-tracking.timer \
file://chrony-tracking.service \
file://chrony_tracking.sh \
"

do_install:append() {
# Binaries
install -m 0755 ${S}/chronyc ${D}${sbindir}
install -d ${D}${base_libdir}/rdk
Comment thread
sindhu-krishnan marked this conversation as resolved.

#config File
rm -rf ${D}${sysconfdir}/chrony.conf
install -m 0644 ${WORKDIR}/chrony.conf ${D}${sysconfdir}/
install -m 0644 ${WORKDIR}/rdk_chrony.conf ${D}${sysconfdir}/
Comment thread
sindhu-krishnan marked this conversation as resolved.
install -m 0755 ${WORKDIR}/chrony-sync-notify.sh ${D}${base_libdir}/rdk
install -m 0755 ${WORKDIR}/chrony-conf-update.sh ${D}${base_libdir}/rdk
install -m 0755 ${WORKDIR}/chrony_tracking.sh ${D}${base_libdir}/rdk


# service to start chrony
rm -rf ${D}${systemd_unitdir}/system/chronyd.service
install -m 0644 ${WORKDIR}/chronyd.service ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/chrony-sync-notify.service ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/chrony-tracking.service ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/chrony-tracking.timer ${D}${systemd_unitdir}/system/
Comment thread
sindhu-krishnan marked this conversation as resolved.
Comment thread
sindhu-krishnan marked this conversation as resolved.

}


FILES:${PN} += "${sbindir}/chronyc"
FILES:${PN} += "${base_libdir}/rdk/chrony-sync-notify.sh"
CONFFILES:${PN} += "${sysconfdir}/chrony.conf"
CONFFILES:${PN} += "${sysconfdir}/rdk_chrony.conf"
FILES:${PN} += "${base_libdir}/rdk/chrony-conf-update.sh"
FILES:${PN} += "${base_libdir}/rdk/chrony_tracking.sh"
FILES:${PN} += "${systemd_unitdir}/system/chrony-tracking.service"
FILES:${PN} += "${systemd_unitdir}/system/chrony-tracking.timer"
FILES:${PN} += "${systemd_unitdir}/system/chronyd.service"
FILES:${PN} += "${systemd_unitdir}/system/chrony-sync-notify.service"

SYSTEMD_SERVICE:${PN} += "chronyd.service"
SYSTEMD_SERVICE:${PN} += "chrony-sync-notify.service"
SYSTEMD_SERVICE:${PN} += "chrony-tracking.timer"


inherit syslog-ng-config-gen
Comment thread
sindhu-krishnan marked this conversation as resolved.
SYSLOG-NG_FILTER = "chronyd"
SYSLOG-NG_SERVICE_chronyd = "chronyd.service"
SYSLOG-NG_DESTINATION_chronyd = "chrony.log"
SYSLOG-NG_LOGRATE_chronyd = "low"

240 changes: 240 additions & 0 deletions recipes-support/chrony/files/chrony-conf-update.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
#!/bin/bash
Comment thread
sindhu-krishnan marked this conversation as resolved.
##############################################################################
# If not stated otherwise in this file or this component's LICENSE file the

Check failure on line 3 in recipes-support/chrony/files/chrony-conf-update.sh

View workflow job for this annotation

GitHub Actions / call-fossid-workflow / Fossid Annotate PR

FossID License Issue Detected

Source code with 'Apache-2.0' license found in local file 'recipes-support/chrony/files/chrony-conf-update.sh' (Match: rdkcentral/Thunder/R1, 15 lines, url: https://github.com/rdkcentral/Thunder/archive/refs/tags/R1.tar.gz, file: Tools/ProxyStubGenerator/Interface.py)
Comment thread
sindhu-krishnan marked this conversation as resolved.
# following copyright and licenses apply:
#
# Copyright 2020 RDK Management
#
# Licensed under the Apache License, Version 2.0 (the "License");

Check failure on line 8 in recipes-support/chrony/files/chrony-conf-update.sh

View workflow job for this annotation

GitHub Actions / call-fossid-workflow / Fossid Annotate PR

FossID License Issue Detected

Source code with 'Apache-2.0' license found in local file 'recipes-support/chrony/files/chrony-conf-update.sh' (Match: rigetti/pyquil/0, 11 lines, url: https://github.com/rigetti/pyquil/archive/refs/tags/quilt-demo-0.tar.gz, file: pyquil/api/_qam.py)
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################
# Purpose : To generate the chrony configuration file (/etc/rdk_chrony.conf)
# Scope : RDK Devices
# Usage : Invoke by systemd service as part of chrony integration


LOG_FILE="/opt/logs/chrony.log"
attempts=1
max_attempts=5
CHRONY_CONF=/etc/rdk_chrony.conf
DEFAULT_MINPOLL="10"
DEFAULT_MAXPOLL="12"

if [ -f /etc/env_setup.sh ]; then
. /etc/env_setup.sh
fi

#create directory if not already available
/bin/mkdir -p /var/lib/chrony

#Log framework to print timestamp and source script name
ntpLog()
{
echo "`/bin/timestamp` : $0: $*" >> "$LOG_FILE"
}
Comment thread
sindhu-krishnan marked this conversation as resolved.

# -----------------------------------------------------------------------------
# Set system time based on LKG value or build time, if neither is available, log error
# -----------------------------------------------------------------------------
CLOCK_FILE="/opt/secure/clock.txt"
VERSION_FILE="/version.txt"

if [ ! -f "$CLOCK_FILE" ]; then
if [ -f "$VERSION_FILE" ]; then
# Extract the BUILD_TIME value
BUILD_TIME=$(grep '^BUILD_TIME=' "$VERSION_FILE" | cut -d= -f2- | tr -d '"')
if [ -n "$BUILD_TIME" ]; then
ntpLog "Setting system time to build time: $BUILD_TIME"
Comment thread
sindhu-krishnan marked this conversation as resolved.
Outdated
date -s "$BUILD_TIME"
else
ntpLog "BUILD_TIME not found in $VERSION_FILE"
fi
else
ntpLog "Neither $CLOCK_FILE nor $VERSION_FILE found"
fi
fi

Comment thread
sindhu-krishnan marked this conversation as resolved.
Outdated
# Read LKG time, ensure it is a valid numeric value
TIME_VAL=$(cat "$CLOCK_FILE")
if ! [[ "$TIME_VAL" =~ ^[0-9]+$ ]]; then
ntpLog "Invalid time value in $CLOCK_FILE"
fi

# Convert epoch time to human-readable date for logging
HUMAN_DATE=$(date -d "@$TIME_VAL")
Comment thread
sindhu-krishnan marked this conversation as resolved.
Outdated

ntpLog "Setting system time to LKG: $HUMAN_DATE (epoch $TIME_VAL)"
Comment thread
sindhu-krishnan marked this conversation as resolved.
Outdated
date -s "@$TIME_VAL"

# -----------------------------------------------------------------------------
# Fetch NTP server hostnames and poll intervals using property scripts
# -----------------------------------------------------------------------------
get_ntp_hosts() {
if [ -f /lib/rdk/getPartnerProperty.sh ]; then
hostName=`/lib/rdk/getPartnerProperty.sh ntpHost`
hostName2=`/lib/rdk/getPartnerProperty.sh ntpHost2`
hostName3=`/lib/rdk/getPartnerProperty.sh ntpHost3`
hostName4=`/lib/rdk/getPartnerProperty.sh ntpHost4`
hostName5=`/lib/rdk/getPartnerProperty.sh ntpHost5`

minPoll=`/lib/rdk/getPartnerProperty.sh NTPMinpoll`
maxPoll=`/lib/rdk/getPartnerProperty.sh NTPMaxpoll`

# Fetch directives for each NTP server (optional, fallback to server)
directive1=$( /lib/rdk/getPartnerProperty.sh NTPServer1Directive )
directive2=$( /lib/rdk/getPartnerProperty.sh NTPServer2Directive )
directive3=$( /lib/rdk/getPartnerProperty.sh NTPServer3Directive )
directive4=$( /lib/rdk/getPartnerProperty.sh NTPServer4Directive )
directive5=$( /lib/rdk/getPartnerProperty.sh NTPServer5Directive )
Comment thread
sindhu-krishnan marked this conversation as resolved.

maxstep=`/lib/rdk/getPartnerProperty.sh NTPMaxstep`

fi
}

# Fallback: Fetch NTP hosts from bootstrap.ini if property script returns nothing
get_ntp_hosts_from_bootstrap() {
BOOTSTRAP="/opt/secure/RFC/bootstrap.ini"

if [ ! -f "$BOOTSTRAP" ]; then
ntpLog "bootstrap.ini not found at $BOOTSTRAP"
return 1
fi

# Helper to fetch key=value from bootstrap.ini (first match)
get_bs_val() {
key="$1"
# Escape regex metacharacters in key so it is matched literally
escaped_key=$(printf '%s\n' "$key" | sed 's/[][\\.^$*]/\\&/g')
# Extract RHS after '=' and trim whitespace
grep -m1 -E "^[[:space:]]*$escaped_key=" "$BOOTSTRAP" 2>/dev/null | \
cut -d'=' -f2- | sed 's/^[[:space:]]*//; s/[[:space:]]*$//'
}

bs1="$(get_bs_val 'Device.Time.NTPServer1')"
bs2="$(get_bs_val 'Device.Time.NTPServer2')"
bs3="$(get_bs_val 'Device.Time.NTPServer3')"
bs4="$(get_bs_val 'Device.Time.NTPServer4')"
bs5="$(get_bs_val 'Device.Time.NTPServer5')"

# Only fill missing values (don’t override TR-181 values if present)
[ -z "$hostName" ] && hostName="$bs1"
[ -z "$hostName2" ] && hostName2="$bs2"
[ -z "$hostName3" ] && hostName3="$bs3"
[ -z "$hostName4" ] && hostName4="$bs4"
[ -z "$hostName5" ] && hostName5="$bs5"

return 0
}


ntpLog "Retrieve NTP Server URL from /lib/rdk/getPartnerProperty.sh..."
while [ "$attempts" -le "$max_attempts" ]; do

ntpLog "Attempt $attempts/$max_attempts to retrieve NTP server URL(s)..."
get_ntp_hosts

if [ "$hostName" ] || [ "$hostName2" ] || [ "$hostName3" ] || [ "$hostName4" ] || [ "$hostName5" ]; then
break
fi

# If this is the last attempt, try bootstrap as fallback and then break
if [ $attempts -eq $max_attempts ]; then
ntpLog "TR-181 returned empty NTP server list; falling back to /opt/secure/RFC/bootstrap.ini..."
get_ntp_hosts_from_bootstrap
break
fi

sleep 3
attempts=$((attempts + 1))

done

# Use default polling intervals if not configured
# Validate that minPoll is not greater than maxPoll
[ -z "$minPoll" ] && minPoll="$DEFAULT_MINPOLL"
[ -z "$maxPoll" ] && maxPoll="$DEFAULT_MAXPOLL"

if [ "$minPoll" -gt "$maxPoll" ]; then
ntpLog "ERROR: minPoll ($minPoll) is greater than maxPoll ($maxPoll), resetting both to defaults ($DEFAULT_MINPOLL/$DEFAULT_MAXPOLL)"
minPoll="$DEFAULT_MINPOLL"
maxPoll="$DEFAULT_MAXPOLL"
fi
Comment thread
sindhu-krishnan marked this conversation as resolved.
ntpLog "Minpoll:$minPoll MaxPoll:$maxPoll"

hosts=("$hostName" "$hostName2" "$hostName3" "$hostName4" "$hostName5")
directives=("$directive1" "$directive2" "$directive3" "$directive4" "$directive5")
ntpLog "NTP Server URL for the partner:${hosts[*]}"

Comment thread
sindhu-krishnan marked this conversation as resolved.
conf_written=0
> "$CHRONY_CONF"

# Add makestep directive to chrony config to control threshold/step correction
if [ -n "$maxstep" ]; then
if echo "$maxstep" | grep -Eq '^[0-9]+(\.[0-9]+)?,[0-9]+$'; then
stepval="${maxstep%%,*}"
stepcount="${maxstep##*,}"
echo "makestep $stepval $stepcount" >> "$CHRONY_CONF"
ntpLog "Added makestep $stepval $stepcount to $CHRONY_CONF"
else
echo "makestep 1.0 3" >> "$CHRONY_CONF"
ntpLog "NTPMaxstep value '$maxstep' is invalid, using default makestep 1.0 3 in $CHRONY_CONF"
fi
else
echo "makestep 1.0 3" >> "$CHRONY_CONF"
ntpLog "NTPMaxstep is not set, using default makestep 1.0 3 in $CHRONY_CONF"
fi

# Add NTP servers ("server" or "pool" directive) to the configuration file

for i in $(seq 0 4); do
host="${hosts[$i]}"
directive="${directives[$i]}"
Comment thread
sindhu-krishnan marked this conversation as resolved.
if [ -n "$host" ]; then
# use directive if set, else default to server
[ -z "$directive" ] && directive="server"

# Only allow server or pool, default to server otherwise
if [ "$directive" != "server" ] && [ "$directive" != "pool" ]; then
directive="server"
fi

if [ "$directive" = "pool" ]; then
printf "%s %s iburst minpoll %s maxpoll %s maxsources 4\n" "$directive" "$host" "$minPoll" "$maxPoll" >> "$CHRONY_CONF"
else
printf "%s %s iburst minpoll %s maxpoll %s\n" "$directive" "$host" "$minPoll" "$maxPoll" >> "$CHRONY_CONF"
Comment thread
sindhu-krishnan marked this conversation as resolved.
fi
conf_written=1
fi
Comment thread
sindhu-krishnan marked this conversation as resolved.
Comment thread
sindhu-krishnan marked this conversation as resolved.
Comment thread
sindhu-krishnan marked this conversation as resolved.
done
Comment thread
sindhu-krishnan marked this conversation as resolved.

# Remove duplicate NTP server entries, preserving only unique definitions

TMP_FILE="/tmp/rdk_chrony.deduped"
Comment thread
sindhu-krishnan marked this conversation as resolved.
awk '
/^(server|pool)[ \t]+/ {
if (!seen[$0]++) print
next
}
{ print }
' "$CHRONY_CONF" > "$TMP_FILE"
cat "$TMP_FILE" > "$CHRONY_CONF"
Comment thread
sindhu-krishnan marked this conversation as resolved.
Comment thread
sindhu-krishnan marked this conversation as resolved.
Comment thread
sindhu-krishnan marked this conversation as resolved.

# Fallback: If no valid NTP hosts found, use Google's public time server
if [ "$conf_written" -eq 0 ]; then
printf "server time.google.com iburst minpoll %s maxpoll %s\n" "$minPoll" "$maxPoll" >> "$CHRONY_CONF"
ntpLog "No valid NTP servers found, using fallback: time.google.com"
fi

ntpLog "Successfully updated $CHRONY_CONF"

exit 0
12 changes: 12 additions & 0 deletions recipes-support/chrony/files/chrony-sync-notify.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[Unit]
Description=Notify when Chrony time sync is completed
Documentation=man:chronyc(1)
After=chronyd.service
ConditionPathExists=/opt/secure/RFC/chrony/chronyd_enabled

Comment thread
sindhu-krishnan marked this conversation as resolved.
[Service]
Type=oneshot
ExecStart=/lib/rdk/chrony-sync-notify.sh

[Install]
WantedBy=chronyd.service
Loading
Loading