diff options
author | Richard Maw <richard.maw@codethink.co.uk> | 2012-11-28 13:54:50 +0000 |
---|---|---|
committer | Richard Maw <richard.maw@codethink.co.uk> | 2012-11-29 11:37:16 +0000 |
commit | 1f68cf95779d1ab018053dfd8a62a7e943919bd3 (patch) | |
tree | 356b86fe5b98fe9817fb7cf18436e09cbf023989 | |
parent | e6f0dc562b403b705e2f6c4b3e5cd3306c62d2f7 (diff) | |
download | busybox-baserock/richardmaw/S5892/boot-sequencing.tar.gz |
Make ntpd.service finish after setting the timebaserock/richardmaw/S5892/boot-sequencing
This also includes a cleanup of the ntpd-set.sh script.
It used recursion unnecessarily, when a for loop with seq would work.
This has the side effect of making the attempts to start unconfigured
network interfaces more alarming, as they appear as FAILURE in the
boot log.
-rwxr-xr-x | scripts/ntpd-set.sh | 27 | ||||
-rw-r--r-- | systemd-units/ntpd.service.in | 4 |
2 files changed, 14 insertions, 17 deletions
diff --git a/scripts/ntpd-set.sh b/scripts/ntpd-set.sh index 3581d2421..d6fd8f25b 100755 --- a/scripts/ntpd-set.sh +++ b/scripts/ntpd-set.sh @@ -1,30 +1,25 @@ #!/bin/sh max_attempts=4 -try_count=0 # This script takes a list of ntp servers and passes them to ntpd to set the # system time. If a /etc/ntpd.conf file exists, the servers there are used, # if not, some default values are passed set_time() { - ntpd -n -p $1; - return $? + # -q flag makes ntpd exit after setting the time once + ntpd -q -n -p "$1" } check_time() { - for arg ; do - echo $arg - if set_time $arg ; then - return 0 - fi - done - # In case we are doing this before the network is up, try again - let try_count=try_count+1 - if [ $try_count -lt $max_attempts ] ; then + for attempt in $(seq "$max_attempts"); do + for arg ; do + echo $arg + if set_time "$arg" ; then + return 0 + fi + done sleep 2 - check_time $@ - else - return 1 - fi + done + return 1 } if [ -f /etc/ntpd.conf ]; then diff --git a/systemd-units/ntpd.service.in b/systemd-units/ntpd.service.in index 1abc4f3a7..96ce5ac99 100644 --- a/systemd-units/ntpd.service.in +++ b/systemd-units/ntpd.service.in @@ -1,6 +1,8 @@ [Unit] -Description=Service to use ntpd to set the date and time +Description=Network Time Protocol client +Before=network.target [Service] +Type=oneshot ExecStart=/usr/bin/ntpd-set.sh RemainAfterExit=true |