freebsd-skq/contrib/ntp/scripts/rc/ntpd
Cy Schubert 2b15cb3d09 MFV ntp 4.2.8p1 (r258945, r275970, r276091, r276092, r276093, r278284)
Thanks to roberto for providing pointers to wedge this into HEAD.

Approved by:	roberto
2015-03-30 13:30:15 +00:00

89 lines
1.8 KiB
Bash

#!/bin/sh
NTPD=/usr/sbin/ntpd
PIDFILE=/var/run/ntpd.pid
USER=ntp
GROUP=ntp
NTPD_OPTS="-g -u $USER:$GROUP -p $PIDFILE"
ntpd_start() {
if [ -r $PIDFILE ]; then
echo "ntpd seems to be already running under pid `cat $PIDFILE`."
echo "Delete $PIDFILE if this is not the case.";
return 1;
fi
echo -n "Starting NTP daemon... "
$NTPD $NTPD_OPTS
# You can't always rely on the ntpd exit code, see Bug #2420
# case "$?" in
# 0) echo "OK!"
# return 0;;
# *) echo "FAILED!"
# return 1;;
# esac
sleep 1
if ps -Ao args|grep -q "^$NTPD $NTPD_OPTS"; then
echo "OK!"
return 0
else
echo "FAILED!"
[ -e $PIDFILE ] && rm $PIDFILE
return 1
fi
}
ntpd_stop() {
if [ ! -r $PIDFILE ]; then
echo "ntpd doesn't seem to be running, cannot read the pid file."
return 1;
fi
echo -n "Stopping NTP daemon...";
PID=`cat $PIDFILE`
if kill -TERM $PID 2> /dev/null;then
# Give ntp 15 seconds to exit
for i in `seq 1 15`; do
if [ -n "`ps -p $PID|grep -v PID`" ]; then
echo -n .
sleep 1
else
echo " OK!"
rm $PIDFILE
return 0
fi
done
fi
echo " FAILED! ntpd is still running";
return 1
}
ntpd_status() {
if [ -r $PIDFILE ]; then
echo "NTP daemon is running as `cat $PIDFILE`"
else
echo "NTP daemon is not running"
fi
}
case "$1" in
'start')
ntpd_start
;;
'stop')
ntpd_stop
;;
'restart')
ntpd_stop && ntpd_start
;;
'status')
ntpd_status
;;
*)
echo "Usage: $0 (start|stop|restart|status)"
esac