- Do not call ntpdate before start ntpd, ntpd -g parameter is enough
- Deprecate /usr/local/sbin/ntpdate_sync_once.sh
- Remove system_ntp_configure parameter and always start ntpd
This commit is contained in:
Renato Botelho 2016-04-04 17:40:11 -03:00
parent 67c9344405
commit 5a758355ec
4 changed files with 4 additions and 56 deletions

View File

@ -1572,7 +1572,7 @@ function system_ntp_setup_pps($serialport) {
}
function system_ntp_configure($start_ntpd=true) {
function system_ntp_configure() {
global $config, $g;
$driftfile = "/var/db/ntpd.drift";
@ -1868,11 +1868,6 @@ function system_ntp_configure($start_ntpd=true) {
return;
}
/* At bootup we just want to write out the config. */
if (!$start_ntpd) {
return;
}
/* if ntpd is running, kill it */
while (isvalidpid("{$g['varrun_path']}/ntpd.pid")) {
killbypid("{$g['varrun_path']}/ntpd.pid");

View File

@ -642,6 +642,7 @@
/usr/local/sbin/mdnsd
/usr/local/sbin/mini_httpd
/usr/local/sbin/mpd
/usr/local/sbin/ntpdate_sync_once.sh
/usr/local/sbin/olsrd
/usr/local/sbin/pbi
/usr/local/sbin/pbi-crashhandler

View File

@ -308,11 +308,9 @@ services_dnsmasq_configure();
/* start unbound service */
services_unbound_configure();
/* Do an initial time sync */
/* Enable ntpd */
echo "Starting NTP time client...";
/* At bootup this will just write the config, ntpd will launch from ntpdate_sync_once.sh */
system_ntp_configure(false);
mwexec_bg("/usr/local/sbin/ntpdate_sync_once.sh", true);
system_ntp_configure();
echo "done.\n";
/* start load balancer daemon */

View File

@ -1,46 +0,0 @@
#!/bin/sh
NOTSYNCED="true"
MAX_ATTEMPTS=3
SERVER=$(/usr/local/sbin/read_xml_tag.sh string system/timeservers)
if [ -z "${SERVER}" ]; then
exit
fi
/bin/pkill -f ntpdate_sync_once.sh
ATTEMPT=1
# Loop until we're synchronized, but for a set number of attempts so we don't get stuck here forever.
while [ "$NOTSYNCED" = "true" ] && [ ${ATTEMPT} -le ${MAX_ATTEMPTS} ]; do
# Ensure that ntpd and ntpdate are not running so that the socket we want will be free.
while [ true ]; do
/usr/bin/killall ntpdate 2>/dev/null
/bin/pgrep ntpd
if [ $? -eq 0 ]; then
/usr/bin/killall ntpd 2>/dev/null
else
break
fi
done
sleep 1
/usr/local/sbin/ntpdate -s -t 5 ${SERVER}
if [ "$?" = "0" ]; then
NOTSYNCED="false"
else
sleep 5
ATTEMPT=`expr ${ATTEMPT} + 1`
fi
done
if [ "$NOTSYNCED" = "true" ]; then
echo "Giving up on time sync after ${MAX_ATTEMPTS} attempts." | /usr/bin/logger -t ntp;
else
echo "Successfully synced time after ${ATTEMPT} attempts." | /usr/bin/logger -t ntp;
fi
if [ -f /var/etc/ntpd.conf ]; then
echo "Starting NTP Daemon." | /usr/bin/logger -t ntp;
/usr/local/sbin/ntpd -g -c /var/etc/ntpd.conf -p /var/run/ntpd.pid
else
echo "NTP configuration file missing, not starting daemon." | /usr/bin/logger -t ntp;
fi