blob: 5d1d4e35571cc32094fc4ad0aff48bd2a78875d0 [file] [log] [blame]
Denys Vlasenko6cf7f012009-11-06 04:04:19 +01001#!/bin/sh
2
Denys Vlasenko002bdc32009-11-09 11:04:54 +01003#exec >/dev/null
Denys Vlasenko6cf7f012009-11-06 04:04:19 +01004exec 2>&1
5exec </dev/null
6
7pwd="$PWD"
8
9if="${PWD##*/ifplugd_}"
10
Denys Vlasenko4f8ecf22015-10-24 14:55:33 +020011echo "* Upping iface $if"
12ip link set dev "$if" up
13
Denys Vlasenkobf40f562009-11-07 17:54:44 +010014echo "* Starting ifplugd on $if [$$]"
Denys Vlasenko6cf7f012009-11-06 04:04:19 +010015exec \
16env - PATH="$PATH" \
17softlimit \
18setuidgid root \
Denys Vlasenko0d79d772018-03-30 20:02:33 +020019ifplugd -aqlns -t3 -u8 -d8 -i "$if" -r "$pwd/ifplugd_handler"
Denys Vlasenko6cf7f012009-11-06 04:04:19 +010020
Denys Vlasenko002bdc32009-11-09 11:04:54 +010021# We use -t3 to wake ifplugd up less often.
22# If after three tests (3*3=9 > 8) link state seen to be different,
23# the handler will be called.
24# IOW: short link losses will be ignored, longer ones
25# will trigger DHCP reconfiguration and such (see handler code).
Denys Vlasenkobf40f562009-11-07 17:54:44 +010026
Denys Vlasenko0d79d772018-03-30 20:02:33 +020027# -l makes ifplugd run either "up" or "down" script on startup.
28# For example, if wired eth cable is unplugged, this stops dhcp service
29# from pointlessly trying to get a lease.
30# -q means that stopping monitoring does not stop dhcp/zcip/etc:
31# presumably, admin decided to control them manually.
32
Denys Vlasenkod892f712018-03-30 11:14:46 +020033#-a Don't up interface automatically
34#-p Don't run "up" script on startup
35#-q Don't run "down" script on exit
36#-l Always run script on startup
Denys Vlasenkobf40f562009-11-07 17:54:44 +010037#-n Do not daemonize
38#-s Do not log to syslog
Denys Vlasenko6cf7f012009-11-06 04:04:19 +010039#-t SECS Poll time in seconds
40#-u SECS Delay before running script after link up
41#-d SECS Delay after link down
Denys Vlasenkobf40f562009-11-07 17:54:44 +010042#-i IFACE Interface
Denys Vlasenkobf40f562009-11-07 17:54:44 +010043#-M Monitor creation/destruction of interface (otherwise it must exist)
Denys Vlasenkod892f712018-03-30 11:14:46 +020044#-r PROG Script to run
Denys Vlasenkobf40f562009-11-07 17:54:44 +010045#-x ARG Extra argument for script
Denys Vlasenkod892f712018-03-30 11:14:46 +020046#-I Don't exit on nonzero exit code from script
47#-f/-F Treat link detection error as link down/link up (otherwise exit on error)
Denys Vlasenko6cf7f012009-11-06 04:04:19 +010048#-m MODE API mode (mii, priv, ethtool, wlan, auto)
Denys Vlasenkod892f712018-03-30 11:14:46 +020049#-k Kill running daemon