summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2012-11-28 13:54:50 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2012-11-29 11:37:16 +0000
commit1f68cf95779d1ab018053dfd8a62a7e943919bd3 (patch)
tree356b86fe5b98fe9817fb7cf18436e09cbf023989
parente6f0dc562b403b705e2f6c4b3e5cd3306c62d2f7 (diff)
downloadbusybox-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-xscripts/ntpd-set.sh27
-rw-r--r--systemd-units/ntpd.service.in4
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