mirror of
				https://git.busybox.net/busybox
				synced 2025-11-03 08:22:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/bash
 | 
						|
# (using bashism (arrays) in dhcp config)
 | 
						|
 | 
						|
#exec >/dev/null
 | 
						|
exec 2>&1
 | 
						|
exec </dev/null
 | 
						|
 | 
						|
user=root
 | 
						|
start_delay=15
 | 
						|
net_down_delay=5
 | 
						|
pool="us.pool.ntp.org" # replace "us" with your country code
 | 
						|
 | 
						|
service="${PWD##*/}"
 | 
						|
rundir="/var/run/service/$service"
 | 
						|
default_p_opt="-p 0.$pool -p 1.$pool -p 2.$pool -p 3.$pool"
 | 
						|
 | 
						|
echo "* Checking network"
 | 
						|
test -f /var/run/service/fw/up || exec sleep $net_down_delay
 | 
						|
 | 
						|
# With multiple interfaces (e.g. wired+wireless) going up,
 | 
						|
# networking scripts may restart ntpd service several times
 | 
						|
# in quick succession. Do not be too eager to start sending
 | 
						|
# NTP requests:
 | 
						|
sleep $start_delay
 | 
						|
 | 
						|
# Make sure rundir/ exists
 | 
						|
mkdir -p "$rundir" 2>/dev/null
 | 
						|
chown -R "$user": "$rundir"
 | 
						|
chmod -R a=rX "$rundir"
 | 
						|
rm -rf rundir 2>/dev/null
 | 
						|
ln -s "$rundir" rundir
 | 
						|
 | 
						|
# Grab config from dhcp
 | 
						|
cfg=-1
 | 
						|
for f in rundir/*.ntpconf; do
 | 
						|
	test -f "$f" || continue
 | 
						|
	. "$f"
 | 
						|
done
 | 
						|
 | 
						|
# Select peers
 | 
						|
p_opt=""
 | 
						|
cfg=0
 | 
						|
while test x"${ntpip[$cfg]}" != x""; do
 | 
						|
	p_opt="$p_opt -p ${ntpip[$cfg]}"
 | 
						|
	let cfg=cfg+1
 | 
						|
done
 | 
						|
test x"$p_opt" == x"" && p_opt="$default_p_opt"
 | 
						|
 | 
						|
if test x"$p_opt" == x""; then
 | 
						|
	echo "* No NTP peers configured, stopping"
 | 
						|
	svc -o .
 | 
						|
	exec sleep 1
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
# Let others know that we are up
 | 
						|
date '+%Y-%m-%d %H:%M:%S %Z' >rundir/up
 | 
						|
 | 
						|
# Go go go
 | 
						|
echo "* Starting ntpd[$$]"
 | 
						|
exec \
 | 
						|
env - PATH="$PATH" \
 | 
						|
softlimit \
 | 
						|
setuidgid "$user" \
 | 
						|
ntpd -ddnNl -S ./ntp.script $p_opt
 |