diff options
author | roberto <roberto@FreeBSD.org> | 2001-08-29 14:35:15 +0000 |
---|---|---|
committer | roberto <roberto@FreeBSD.org> | 2001-08-29 14:35:15 +0000 |
commit | 40b8e415eb0f835a9dd7a473ddf134ec67877fd7 (patch) | |
tree | 3cfb63f1a112ee17469b17fc1593a88d004ddda6 /contrib/ntp/scripts/ntp-wait.in | |
parent | a5a8dc6136fcee95f261a31609a25669038c3861 (diff) | |
download | FreeBSD-src-40b8e415eb0f835a9dd7a473ddf134ec67877fd7.zip FreeBSD-src-40b8e415eb0f835a9dd7a473ddf134ec67877fd7.tar.gz |
Virgin import of ntpd 4.1.0
Diffstat (limited to 'contrib/ntp/scripts/ntp-wait.in')
-rw-r--r-- | contrib/ntp/scripts/ntp-wait.in | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/contrib/ntp/scripts/ntp-wait.in b/contrib/ntp/scripts/ntp-wait.in new file mode 100644 index 0000000..a26630b --- /dev/null +++ b/contrib/ntp/scripts/ntp-wait.in @@ -0,0 +1,42 @@ +#! @PATH_PERL@ -w + +die "perl5 needed\n" unless ($] > 5); + +use Getopt::Std; + +$opt_f = 0; # 'Hard' failure if 'state' is unknown +$opt_n = 1000; # How many tries before we give up? (10 min+) +$opt_s = 6; # Seconds to sleep between tries (6s = 10/min) +$opt_v = 0; # Be verbose? + +getopts('fn:s:v'); + +$cmd = 'ntpq -c "rv 0 state"'; + +$| = 1; # Autoflush output. + +print "Waiting for ntpd to synchronize... " if ($opt_v); +for ($i = 0; $i < $opt_n; ++$i) { + open(Q, $cmd." 2>&1 |") || die "Can't start ntpq: $!"; + while(<Q>) { + if (/^state=4/) { + print "\bOK!\n" if ($opt_v); + exit 0; + } + + if (/request variable was unknown/) { + print "\bCan't tell!\nPerhaps you are running an old version of ntpd.\n" if ($opt_v); + exit $opt_f; + } + + if (/Connection refused/) { + print "\bntpd is not running!\n" if ($opt_v); + exit 1; + } + } + close(Q); + print "\b".substr("*+:.", $i % 4, 1) if ($opt_v); + sleep($opt_s); +} +print "\bNo!\nntpd did not synchronize.\n" if ($opt_v); +exit 1; |