examples: add example ntpd service
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
c041e239db
commit
4fc82e0067
21
examples/var_service/ntpd/log/run
Executable file
21
examples/var_service/ntpd/log/run
Executable file
@ -0,0 +1,21 @@
|
||||
#!/bin/sh
|
||||
|
||||
user=logger
|
||||
|
||||
logdir="/var/log/service/`(cd ..;basename $PWD)`"
|
||||
mkdir -p "$logdir" 2>/dev/null
|
||||
chown -R "$user": "$logdir"
|
||||
chmod -R go-rwxst,u+rwX "$logdir"
|
||||
rm logdir
|
||||
ln -s "$logdir" logdir
|
||||
|
||||
# make this dir accessible to logger
|
||||
chmod a+rX .
|
||||
|
||||
exec >/dev/null
|
||||
exec 2>&1
|
||||
exec \
|
||||
env - PATH="$PATH" \
|
||||
softlimit \
|
||||
setuidgid "$user" \
|
||||
svlogd -tt "$logdir"
|
29
examples/var_service/ntpd/ntp.script
Executable file
29
examples/var_service/ntpd/ntp.script
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/sh
|
||||
|
||||
exec 2>/dev/null
|
||||
echo "`tail -n 99 "$0.log"`" >"$0.log"
|
||||
|
||||
exec >>"$0.log"
|
||||
exec 2>&1
|
||||
|
||||
dt=`date '+%Y-%m-%d %H:%M:%S'`
|
||||
|
||||
if test x"$stratum" != x"" \
|
||||
&& test x"$poll_interval" != x"" \
|
||||
&& test 4 -ge "$stratum" \
|
||||
&& test 128 -le "$poll_interval" \
|
||||
; then
|
||||
echo "$dt: $1"\
|
||||
"freq_drift_ppm=$freq_drift_ppm"\
|
||||
"offset=$offset"\
|
||||
"stratum=$stratum"\
|
||||
"poll_interval=$poll_interval,"\
|
||||
"setting hardware clock"
|
||||
exec hwclock --systohc
|
||||
fi
|
||||
|
||||
echo "$dt: $1"\
|
||||
"freq_drift_ppm=$freq_drift_ppm"\
|
||||
"offset=$offset"\
|
||||
"stratum=$stratum"\
|
||||
"poll_interval=$poll_interval"\
|
4
examples/var_service/ntpd/p_log
Executable file
4
examples/var_service/ntpd/p_log
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd log/logdir || exit 1
|
||||
cat @* current | $PAGER
|
60
examples/var_service/ntpd/run
Executable file
60
examples/var_service/ntpd/run
Executable file
@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
# (using bashism (arrays) in dhcp config)
|
||||
|
||||
#exec >/dev/null
|
||||
exec 2>&1
|
||||
exec </dev/null
|
||||
|
||||
user=root
|
||||
pool="us.pool.ntp.org" # replace "us" with your country code
|
||||
|
||||
service="${PWD##*/}"
|
||||
rundir="/var/run/service/$service"
|
||||
default_p_opt="-p 0.$pool -p 1.$pool -p 2.$pool -p 3.$pool"
|
||||
|
||||
|
||||
# Make sure rundir/ exists
|
||||
mkdir -p "$rundir" 2>/dev/null
|
||||
chown -R "$user:" "$rundir"
|
||||
chmod -R a=rX "$rundir"
|
||||
rm -rf rundir 2>/dev/null
|
||||
ln -s "$rundir" rundir
|
||||
|
||||
|
||||
echo "* Checking network"
|
||||
test -f /var/run/service/fw/up || exec sleep 7
|
||||
sleep 5 # to let it settle
|
||||
|
||||
# Grab config from dhcp
|
||||
cfg=-1
|
||||
for f in rundir/*.ntpconf; do
|
||||
test -f "$f" || continue
|
||||
. "$f"
|
||||
done
|
||||
|
||||
# Select peers
|
||||
p_opt=""
|
||||
cfg=0
|
||||
while test x"${ntpip[$cfg]}" != x""; do
|
||||
p_opt="$p_opt -p ${ntpip[$cfg]}"
|
||||
let cfg=cfg+1
|
||||
done
|
||||
test x"$p_opt" == x"" && p_opt="$default_p_opt"
|
||||
|
||||
if test x"$p_opt" == x""; then
|
||||
echo "* No NTP peers configured, stopping"
|
||||
sv o .
|
||||
exec sleep 1
|
||||
fi
|
||||
|
||||
|
||||
# Let others know that we are up
|
||||
date '+%Y-%m-%d %H:%M:%S %Z' >rundir/up
|
||||
|
||||
# Go go go
|
||||
echo "* Starting ntpd[$$]"
|
||||
exec \
|
||||
env - PATH="$PATH" \
|
||||
softlimit \
|
||||
setuidgid "$user" \
|
||||
ntpd -ddnNl -S ./ntp.script $p_opt
|
4
examples/var_service/ntpd/w_log
Executable file
4
examples/var_service/ntpd/w_log
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd log/logdir || exit 1
|
||||
watch -n2 'w=`ttysize w`; h=`ttysize h`; tail -$((h-3)) current 2>&1 | cut -b0-$((w-2))'
|
Loading…
Reference in New Issue
Block a user