ntpdate script doesn't load configuration file

Bug #722133 reported by Tomas Bosak
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ntp (Ubuntu)
Expired
Low
Unassigned

Bug Description

Binary package hint: ntpdate

ntpdate script (located in /etc/network/if-up.d/ntpdate) doesn't load configuration from file (located in /etc/default/ntpdate).

1) OS: Ubuntu 11.04 (natty)
2) Package version: 1:4.2.6.p2+dfsg-1ubuntu4 and previous versions
3) Load configuration file
4) Configuration file isn't loaded

Solution:
Add these lines to script (/etc/network/if-up.d/ntpdate):

if [ -r /etc/default/ntpdate ]; then
        . /etc/default/ntpdate
        OPTS="${OPTS} ${NTPOPTIONS} ${NTPSERVERS}"
fi

Complete script:

#!/bin/sh

set -e

PATH=/sbin:/bin:/usr/sbin:/usr/bin

# This is a heuristic: The idea is that if a static interface is brought
# up, that is a major event, and we can put in some extra effort to fix
# the system time. Feel free to change this, especially if you regularly
# bring up new network interfaces.
if [ "$METHOD" = static ]; then
        OPTS="-b"
fi

if [ "$METHOD" = loopback ]; then
        exit 0
fi

# Check whether ntpdate was removed but not purged; it's useless to wait for
# it in that case.
if [ ! -x /usr/sbin/ntpdate-debian ] && [ -d /usr/sbin ]; then
        exit 0
fi

if [ -r /etc/default/ntpdate ]; then
        . /etc/default/ntpdate
        OPTS="${OPTS} ${NTPOPTIONS} ${NTPSERVERS}"
fi

(

# This is for the case that /usr will be mounted later.
if [ -r /lib/udev/hotplug.functions ]; then
        . /lib/udev/hotplug.functions
        wait_for_file /usr/sbin/ntpdate-debian
fi

LOCKFILE=/var/lock/ntpdate-ifup

# Avoid running more than one at a time
if [ -x /usr/bin/lockfile-create ]; then
        lockfile-create $LOCKFILE
        lockfile-touch $LOCKFILE &
        LOCKTOUCHPID="$!"
fi

invoke-rc.d --quiet ntp stop >/dev/null 2>&1 || true

/usr/sbin/ntpdate-debian -s $OPTS 2>/dev/null || :

invoke-rc.d --quiet ntp start >/dev/null 2>&1 || true

if [ -x /usr/bin/lockfile-create ] ; then
        kill $LOCKTOUCHPID
        lockfile-remove $LOCKFILE
fi

) &

Revision history for this message
C de-Avillez (hggdh2) wrote :

Thank you for opening this bug and helping make Ubuntu better.

The /etc/network/if-up.d/ntpdate script *does* load the necessary configuration. This is done by the ntpdate-debian script calling within.

Can you please expand on why it did not work for you?

Changed in ntp (Ubuntu):
importance: Undecided → Low
status: New → Incomplete
Revision history for this message
Tomas Bosak (bosak-tomas) wrote :

In my case the configuration file wasn't loaded until I changed the script file. Therefore time in my system wasn't correctly set according to configuration. I forgot to mention that the OS is Ubuntu Server edition. By "necessary configuration" you mean the /etc/default/ntpdate file?

Revision history for this message
Tomas Bosak (bosak-tomas) wrote :

The real problem may be in script /usr/sbin/ntpdate-debian:

this line
NTPSERVERS=$(sed -rne 's/^(servers?|peer) ([-_.:[:alnum:]]+).*$/\2/p'
"$file" ...

could not correctly parsed file below:

/etc/ntp.conf:
restrict -6 default ignore
restrict -4 default ignore

restrict -6 ::1 nomodify notrap nopeer kod
restrict -4 127.0.0.1 mask 255.255.255.255 nomodify notrap nopeer kod

server -6 ntp.ipv6.my-domain.tld prefer minpoll 7 maxpoll 14
restrict -6 ntp.ipv6.my-domain.tld nomodify notrap nopeer kod

server -4 ntp.my-domain.tld minpoll 7 maxpoll 14
restrict -4 ntp.my-domain.tld mask 255.255.255.255 nomodify notrap
nopeer kod

driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for ntp (Ubuntu) because there has been no activity for 60 days.]

Changed in ntp (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.