#!/bin/sh
NTPSERVERS="ntps1-0 ntps1-1 ntps2-0 ntps2-1"
NTPROOT=/local/NTP
if [ ! -r $NTPROOT/etc/setup ]; then
echo "ERROR: $NTPROOT/etc/setup missing - incorrect installation."
exit 1
else
. $NTPROOT/etc/setup
fi
umask 022
msg=""
CF=$NTPROOT/conf/$ARCH.$KARCH CFH="$CF"."$HOSTNAME" KFIX=$NTPROOT/bin/tickadj TC=$NTPROOT/conf/tickconf KEY=$NTPROOT/conf/ntp.keys XD=$NTPROOT/bin/xntpd ADJTIMED=$NTPROOT/bin/adjtimed NTPDATE=$NTPROOT/bin/ntpdate
TIMED=$NTPROOT/bin/timed ISREFHOST="[ -f $NTPROOT/.karch.$KARCH/sys/OBJ/parsestreams.o -a -f /dev/refclock-0 ]"
SETUP_REFCLOCK() {
if modstat | grep -s 'PARSE'; then
ECHO "loadable PARSER STREAMS module already loaded."
else
ECHO "attempting to load PARSER STREAMS module..."
MDLFILE="/tmp/mdl.$$"
if modload $NTPROOT/.karch.$KARCH/sys/OBJ/parsestreams.o -o $MDLFILE 2>&1; then
modstat
else
echo WARNING: load FAILED
fi | LOG
rm -f $MDLFILE
unset MDLFILE
fi
}
kargs() {
MATCH=NO
HOSTID="`(hostid) 2>/dev/null || echo 000000`"
if [ -r "$TC" ]; then
exec 0< "$TC"
while [ "$MATCH" != "YES" ] && read HOST ID PARAM; do
if [ "$HOST" = "DEFAULT" ]; then
DEFAULT="$ID $PARAM"
else
if [ "$ID" = "$HOSTID" -o "$HOST" = "$HOSTNAME" ]; then
echo "$PARAM"
MATCH=YES
fi
fi
done
if [ "$MATCH" != "YES" ]; then
if [ -z "$DEFAULT" ]; then
echo "-A -p -s -q";
else
echo "$DEFAULT";
fi
fi
else
echo "-A -p -s -q";
fi
}
if [ -x $XD ]; then
if [ -x "$ADJTIMED" ]; then
$ADJTIMED && ECHO "adjusttimesupport: adjtimed."
fi
PID="`(ps -efa 2>/dev/null || ps auxww 2>/dev/null || echo "") | grep xntp | grep -v grep | awk '{ print $2 }'`"
if [ ! -z "$PID" ]; then
ECHO "killing old NTP daemon (PID=$PID)"
ECHO "should do a kill $PID, if this is the right PID - check rc script"
fi
if [ ! -z "$NTPSERVERS" -a -x $NTPDATE ]; then
ECHO "NTP initial time setting"
$NTPDATE -v $NTPSERVERS | LOG
fi
if $ISREFHOST; then
ECHO "REFERENCE CLOCK SUPPORT (initializing...)"
SETUP_REFCLOCK
fi
if [ -r "$CFH" ]; then
CF="$CFH"
else
if [ ! -r "$KEY" ]; then
KEY="$KEY.dumb"
fi
fi
ECHO "NTP configuration file: $CF"
ECHO -n "time daemon startup:"
if [ -r "$CF" ]; then
if [ -x "$KFIX" ]; then
KARGS="`kargs`"
if [ ! -z "$KARGS" ]; then
$KFIX $KARGS && ECHO -n "tickadj $KARGS"
fi
fi
$XD -c "$CF" -k "$KEY" && ECHO -n ' xntpd'
if [ -x "$TIMED" ] && grep -s TIMED "$CF"; then
$TIMED -M -N && ECHO -n ' timed'
fi
else
msg="configuration file ($CF) not present."
fi
else
msg="daemon binary ($XD) not present."
fi
ECHO "."
if [ "$msg" ]; then
NLECHO "WARNING: NO NTP time sychronisation: $msg"
fi