1275970Scy#!/bin/sh 2275970Scy 3275970ScyNTPD=/usr/sbin/ntpd 4275970ScyPIDFILE=/var/run/ntpd.pid 5275970ScyUSER=ntp 6275970ScyGROUP=ntp 7275970ScyNTPD_OPTS="-g -u $USER:$GROUP -p $PIDFILE" 8275970Scy 9275970Scyntpd_start() { 10275970Scy if [ -r $PIDFILE ]; then 11275970Scy echo "ntpd seems to be already running under pid `cat $PIDFILE`." 12275970Scy echo "Delete $PIDFILE if this is not the case."; 13275970Scy return 1; 14275970Scy fi 15275970Scy echo -n "Starting NTP daemon... " 16275970Scy 17275970Scy $NTPD $NTPD_OPTS 18275970Scy 19275970Scy # You can't always rely on the ntpd exit code, see Bug #2420 20275970Scy # case "$?" in 21275970Scy # 0) echo "OK!" 22275970Scy # return 0;; 23275970Scy # *) echo "FAILED!" 24275970Scy # return 1;; 25275970Scy # esac 26275970Scy 27275970Scy sleep 1 28275970Scy 29275970Scy if ps -Ao args|grep -q "^$NTPD $NTPD_OPTS"; then 30275970Scy echo "OK!" 31275970Scy return 0 32275970Scy else 33275970Scy echo "FAILED!" 34275970Scy [ -e $PIDFILE ] && rm $PIDFILE 35275970Scy return 1 36275970Scy fi 37275970Scy} 38275970Scy 39275970Scyntpd_stop() { 40275970Scy if [ ! -r $PIDFILE ]; then 41275970Scy echo "ntpd doesn't seem to be running, cannot read the pid file." 42275970Scy return 1; 43275970Scy fi 44275970Scy echo -n "Stopping NTP daemon..."; 45275970Scy PID=`cat $PIDFILE` 46275970Scy 47275970Scy if kill -TERM $PID 2> /dev/null;then 48275970Scy # Give ntp 15 seconds to exit 49275970Scy for i in `seq 1 15`; do 50275970Scy if [ -n "`ps -p $PID|grep -v PID`" ]; then 51275970Scy echo -n . 52275970Scy sleep 1 53275970Scy else 54275970Scy echo " OK!" 55275970Scy rm $PIDFILE 56275970Scy return 0 57275970Scy fi 58275970Scy done 59275970Scy fi 60275970Scy 61275970Scy echo " FAILED! ntpd is still running"; 62275970Scy return 1 63275970Scy} 64275970Scy 65275970Scyntpd_status() { 66275970Scy if [ -r $PIDFILE ]; then 67275970Scy echo "NTP daemon is running as `cat $PIDFILE`" 68275970Scy else 69275970Scy echo "NTP daemon is not running" 70275970Scy fi 71275970Scy} 72275970Scy 73275970Scycase "$1" in 74275970Scy 'start') 75275970Scy ntpd_start 76275970Scy ;; 77275970Scy 'stop') 78275970Scy ntpd_stop 79275970Scy ;; 80275970Scy 'restart') 81275970Scy ntpd_stop && ntpd_start 82275970Scy ;; 83275970Scy 'status') 84275970Scy ntpd_status 85275970Scy ;; 86275970Scy *) 87275970Scy echo "Usage: $0 (start|stop|restart|status)" 88275970Scyesac 89