mirror of
				https://git.busybox.net/busybox
				synced 2025-11-03 08:22:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
#exec >/dev/null
 | 
						|
exec 2>&1
 | 
						|
exec </dev/null
 | 
						|
 | 
						|
pwd="$PWD"
 | 
						|
 | 
						|
if="${PWD##*/ifplugd_}"
 | 
						|
 | 
						|
echo "* Upping iface $if"
 | 
						|
ip link set dev "$if" up || exec sleep 5
 | 
						|
 | 
						|
echo "* Starting ifplugd on $if [$$]"
 | 
						|
exec \
 | 
						|
env - PATH="$PATH" \
 | 
						|
softlimit \
 | 
						|
setuidgid root \
 | 
						|
ifplugd -aqlMns -t3 -u8 -d8 -i "$if" -r "$pwd/ifplugd_handler"
 | 
						|
 | 
						|
# We use -t3 to wake ifplugd up less often.
 | 
						|
# If after three tests (3*3=9 > 8) link state seen to be different,
 | 
						|
# the handler will be called.
 | 
						|
# IOW: short link losses will be ignored, longer ones
 | 
						|
# will trigger DHCP reconfiguration and such (see handler code).
 | 
						|
 | 
						|
# -l makes ifplugd run either "up" or "down" script on startup.
 | 
						|
# For example, if wired eth cable is unplugged, this stops dhcp service
 | 
						|
# from pointlessly trying to get a lease.
 | 
						|
# -q means that stopping monitoring does not stop dhcp/zcip/etc:
 | 
						|
# presumably, admin decided to control them manually.
 | 
						|
# -M prevents frequent respawning if device does not exist (yet?)
 | 
						|
 | 
						|
#-a       Don't up interface automatically
 | 
						|
#-p       Don't run "up" script on startup
 | 
						|
#-q       Don't run "down" script on exit
 | 
						|
#-l       Always run script on startup
 | 
						|
#-n       Do not daemonize
 | 
						|
#-s       Do not log to syslog
 | 
						|
#-t SECS  Poll time in seconds
 | 
						|
#-u SECS  Delay before running script after link up
 | 
						|
#-d SECS  Delay after link down
 | 
						|
#-i IFACE Interface
 | 
						|
#-M       Monitor creation/destruction of interface (otherwise it must exist)
 | 
						|
#-r PROG  Script to run
 | 
						|
#-x ARG   Extra argument for script
 | 
						|
#-I       Don't exit on nonzero exit code from script
 | 
						|
#-f/-F    Treat link detection error as link down/link up (otherwise exit on error)
 | 
						|
#-m MODE  API mode (mii, priv, ethtool, wlan, auto)
 | 
						|
#-k       Kill running daemon
 |