From stephan@nevis1.nevis.columbia.edu Mon Jun  7 20:51:57 1999
Date: 04 Jun 1999 00:17:25 -0400
From: Stephan I. Boettcher <stephan@nevis1.nevis.columbia.edu>
To: richard@rrbcurnow.freeserve.co.uk
Subject: chrony 1.1 sysV startup script for notebooks


Dear Richard,

I installed chrony on my notebook, running RedHat 5.1 Linux.
It looks like it works.  No problems.

Thank you!

I like to donate my sysV startup script, appended below.

Special feature:  the `online' command scans the config file to
selectively turn some servers online, depending on the pcmcia SCHEME.

booting:                 /etc/rc.d/init.d/chrony start
/etc/ppp/ip-up:          /etc/rc.d/init.d/chrony online
/etc/ppp/ip-down:        /etc/rc.d/init.d/chrony offline
logrotate cron:          /etc/rc.d/init.d/chrony cyclelogs
a user:                  /etc/rc.d/init.d/chrony status
a sysadmin:              /etc/rc.d/init.d/chrony restart
shutdown:                /etc/rc.d/init.d/chrony stop

Best regards
Stephan

-- 

------------------------------------------------------------------------
Stephan Boettcher                                   FAX: +1-914-591-4540
Columbia University, Nevis Labs                     Tel: +1-914-591-2863
P.O. Box 137, 136 South Broadway      mailto:stephan@nevis1.columbia.edu
Irvington, NY 10533, USA          http://www.nevis.columbia.edu/~stephan
------------------------------------------------------------------------

########################### cut here ###################################
#! /bin/bash
#
#  /etc/rc.d/init.d/chrony
#
#  SYS V startup script for  
#  chrony ntp daemon 
#  on Linux 2.0.3x notebooks with pcmcia scheme support
#  $Id: stephan_boettcher_1,v 1.1 2000/04/24 21:36:04 richard Exp $
#
#  1999-06-02 SiB <stephan@nevis1.columbia.edu>
#
# For PCMCIA users:
# In /etc/chrony.conf, precede the server commands for each SCHEME 
# with a comment line that contains the word SCHEME and the name of
# the scheme(s) that should use the servers, up to the next line that
# contains the word SCHEME.  The servers must be `offline' and 
# specified by their IP address.  The hostname will not do.
#
# Like:
#
#	# SCHEME nevisppp nevislan
#	#       stephanpc.nevis.columbia.edu
#	server  192.12.82.222   offline
#
#	# SCHEME desyppp desylan
#
#	#       dsygw2.desy.de
#	server  131.169.30.15   offline
#	#       dscomsa.desy.de
#	server  131.169.197.35  offline

CONF=/etc/chrony.conf
CHRONYD=/usr/local/sbin/chronyd
CHRONYC=/usr/local/bin/chronyc
KEYS=/etc/chrony.keys

# See if we got all we need:

[ -f $CHRONYD -a -f $CHRONYC -a -r $CONF ] || exit


[ -r $KEYS ]							\
&& CMDKEY=`awk '/^commandkey/{print $2}' $CONF`			\
&& PASSWORD=`awk -v KEY=$CMDKEY '$1==KEY{print $2}' $KEYS`


case "$1" in

  start)
	echo -n "Starting chronyd "
        $CHRONYD -r -s -f $CONF
        echo
        ;;

  stop)
        echo -n "Shutting down chronyd "
	/usr/bin/killall chronyd
        echo
        ;;

  restart)
	$0 stop
	$0 start
	;;

  on*)

	[ -f /var/run/pcmcia-scheme ] && SCHEME=`cat /var/run/pcmcia-scheme`

	awk  -v SCHEME=${SCHEME:-default}  -v PASSWORD=$PASSWORD  \
		'
		BEGIN { 
			SEL=1;
			print "password", PASSWORD; 
		}
		/SCHEME/ { 
			SEL=match($0, SCHEME); 
		}
		SEL && /^server[ \t]*[0-9.]+[ \t].*offline/ { 
			print "online 255.255.255.255/"  $2; 
		}
		'	\
		$CONF	\
	| $CHRONYC

	;;

  off*)
	cat <<-EOF | $CHRONYC
		password $PASSWORD
		offline
		trimrtc
		dump
		EOF
	;;

  *log*)
	cat <<-EOF | $CHRONYC
		password $PASSWORD
		cyclelogs
		EOF
	;;

  stat*)
	cat <<-EOF | $CHRONYC
		sources
		sourcestats
		tracking
		rtcdata
		EOF
	;;

  *)
        echo "Usage: chronyd {start|stop|restart|status|online|offline|cyclelogs}"
        exit 1
	;;

esac

exit 0


