2b15cb3d09
Thanks to roberto for providing pointers to wedge this into HEAD. Approved by: roberto
89 lines
1.8 KiB
Bash
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
|