1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunDAEMON="sntp" 4*4882a593Smuzhiyun# sntp uses all the IPs resolved for the hostname (i.e. pool.ntp.org has 4). 5*4882a593Smuzhiyun# It will try each until they either all timeout or time has been set. Thus 6*4882a593Smuzhiyun# default to only providing one NTP pool host. 7*4882a593SmuzhiyunSNTP_SERVERS="pool.ntp.org" 8*4882a593Smuzhiyun# Step if time delta is greater then 128ms, otherwise slew 9*4882a593SmuzhiyunSNTP_ARGS="-Ss -M 128" 10*4882a593SmuzhiyunSNTP_KEY_CACHE="/tmp/kod" 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun# shellcheck source=/dev/null 13*4882a593Smuzhiyun[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" 14*4882a593Smuzhiyun 15*4882a593Smuzhiyunstart() { 16*4882a593Smuzhiyun printf 'Starting %s: ' "$DAEMON" 17*4882a593Smuzhiyun # Create key cache file to prevents warning that file is missing 18*4882a593Smuzhiyun touch $SNTP_KEY_CACHE 19*4882a593Smuzhiyun # shellcheck disable=SC2086 # we need the word splitting 20*4882a593Smuzhiyun /usr/bin/$DAEMON $SNTP_ARGS -K $SNTP_KEY_CACHE $SNTP_SERVERS 21*4882a593Smuzhiyun # sntp behavior 22*4882a593Smuzhiyun # - Does not background 23*4882a593Smuzhiyun # - Does not infinitely block 24*4882a593Smuzhiyun # - Time-out w/o network = ~2 sec 25*4882a593Smuzhiyun # - Time-out w/ network = ~5sec * # of servers 26*4882a593Smuzhiyun status=$? 27*4882a593Smuzhiyun if [ "$status" -eq 0 ]; then 28*4882a593Smuzhiyun echo "OK" 29*4882a593Smuzhiyun else 30*4882a593Smuzhiyun echo "FAIL" 31*4882a593Smuzhiyun fi 32*4882a593Smuzhiyun return "$status" 33*4882a593Smuzhiyun} 34*4882a593Smuzhiyun 35*4882a593Smuzhiyunstop() { 36*4882a593Smuzhiyun echo "Nothing to do, $DAEMON is not a daemon." 37*4882a593Smuzhiyun} 38*4882a593Smuzhiyun 39*4882a593Smuzhiyunrestart() { 40*4882a593Smuzhiyun stop 41*4882a593Smuzhiyun sleep 1 42*4882a593Smuzhiyun start 43*4882a593Smuzhiyun} 44*4882a593Smuzhiyun 45*4882a593Smuzhiyunreload() { 46*4882a593Smuzhiyun echo "Nothing to do, $DAEMON does not support reload." 47*4882a593Smuzhiyun} 48*4882a593Smuzhiyun 49*4882a593Smuzhiyuncase "$1" in 50*4882a593Smuzhiyun start|stop|restart|reload) 51*4882a593Smuzhiyun "$1";; 52*4882a593Smuzhiyun *) 53*4882a593Smuzhiyun echo "Usage: $0 {start|stop|restart|reload}" 54*4882a593Smuzhiyun exit 1 55*4882a593Smuzhiyunesac 56