#! /bin/sh

### BEGIN INIT INFO
# Provides:        ntp
# Required-Start:  $network $remote_fs $syslog
# Required-Stop:   $network $remote_fs $syslog
# Default-Start:   2 3 4 5
# Default-Stop:
# Short-Description: Start NTP daemon
### END INIT INFO

PATH=/sbin:/bin:/usr/bin:/usr/sbin

DAEMON=/usr/sbin/ntpd
PIDFILE=/var/run/ntpd.pid

# ntpd	init.d script for ntpdc from ntp.isc.org
test -x $DAEMON -a -r /etc/ntp.conf || exit 0

# rcS contains TICKADJ
test -r /etc/default/rcS && . /etc/default/rcS

# Source function library.
. /etc/init.d/functions

# Functions to do individual actions
settick(){
  	# If TICKADJ is set we *must* adjust it before we start, because the
	# driftfile relies on the correct setting
	test -n "$TICKADJ" -a -x /usr/sbin/tickadj && {
		echo -n "Setting tick to $TICKADJ: "
		/usr/sbin/tickadj "$TICKADJ"
		echo "done"
	}
}
startdaemon(){
	# The -g option allows ntpd to step the time to correct it just
	# once.  The daemon will exit if the clock drifts too much after
	# this.  If ntpd seems to disappear after a while assume TICKADJ
	# above is set to a totally incorrect value.
	echo -n "Starting ntpd: "
	start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas $DAEMON -- -u ntp:ntp -p $PIDFILE "$@"
	echo "done"
}
stopdaemon(){
	echo -n "Stopping ntpd: "
	start-stop-daemon --stop --quiet --oknodo -p $PIDFILE
	echo "done"
}

case "$1" in
  start)
  	settick
	startdaemon -g
	;;
  stop)
  	stopdaemon
	;;
  force-reload)
  	stopdaemon
  	settick
	startdaemon -g
	;;
  restart)
  	# Don't reset the tick here
	stopdaemon
	startdaemon -g
	;;
  reload)
  	# Must do this by hand, but don't do -g
	stopdaemon
	startdaemon
	;;
  status)
	status ntpd;
	exit $?
	;;
  *)
	echo "Usage: ntpd { start | stop | status | restart | reload }" >&2
	exit 1
	;;
esac

exit 0
