summaryrefslogtreecommitdiff
path: root/examples/var_service/ifplugd_if/run
blob: c4f766e8801aae1f5cd52486808dd72354da52cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/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

echo "* Starting ifplugd on $if [$$]"
exec \
env - PATH="$PATH" \
softlimit \
setuidgid root \
ifplugd -apqns -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).

#-a       Do not up interface automatically
#-p       Dont run script on daemon startup
#-q       Dont run script on daemon quit
#-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
#-r PROG  Script to run
#-f/-F    Treat link detection error as link down/link up (otherwise exit on error)
#-M       Monitor creation/destruction of interface (otherwise it must exist)
#-x ARG   Extra argument for script
#-I       Dont exit on nonzero exit code from script
#-l       Run script on startup even if no cable is detected
#-m MODE  API mode (mii, priv, ethtool, wlan, auto)