转自http://linux.die.net/man/8/ifplugd
Name
ifplugd - A link detection daemon for ethernet devices
Synopsis
ifplugd [options]
Description
ifplugd is a daemon which will automatically configure your ethernet device when a cable is plugged in and automatically unconfigure it if the cable is pulled. This is useful on laptops with on-board network adapters, since it will only configure the interface when a cable is really connected.
It uses your distribution's native ifup/ifdown programs, but can be configured to do anything you wish when the state of the interface changes. It may ignore short unplugged whiles (-d option) or plugged whiles (-u option).
ifplugd may be used in "compatibility mode" by specifying -F on the command line. Than ifplugd will treat network drivers which do not support link beat querying as always online.
Options
-
-a | --no-auto
- Do not enable interface automatically (default: off) -n | --no-daemon
- Do not daemonize (for debugging) (default: off) -s | --no-syslog
- Do not use syslog, use stdout instead (for debugging) (default: off). -b | --no-beep
- Do not beep (off) -f | --ignore-fail
- Ignore detection failure, retry instead. Failure is treated as "no link". (default: off) -F | --ignore-fail-positive
- Ignore detection failure, retry instead. Failure is treated as "link detected". (default: off) -i | --iface= IFACE
- Specify ethernet interface (default: eth0) -r | --run= EXEC
- Specify program to execute when link status changes (default: /etc/ifplugd/ifplugd.action) -I | --ignore-retval
- Don't exit on nonzero return value of program executed on link change. (default: off) -t | --poll-time= SECS
- Specify poll time in seconds (default: 1) -u | --delay-up= SECS
- Specify delay for configuring interface (default: 0) -d | --delay-down= SECS
- Specify delay for deconfiguring interface (default: 5) -m | --api-mode= MODE
- Force a specific link beat detection ioctl() API. Possible values are auto, iff, wlan, ethtool, mii, and priv for automatic detection, interface flag (IFF_RUNNING), wireless extension, SIOCETHTOOL, SIOCGMIIREG resp. SIOCPRIV. Only the first character of the argument is relevant, case insensitive. (default: auto) -p | --no-startup
- Don't call the script to bring up network on deamon start (default: off) -q | --no-shutdown
- Don't call the script for network shutdown on deamon quit (default: off) -w | --wait-on-fork
- When daemonizing, wait until the background process finished with the initial link beat detection. When this is enabled, the parent process will return the link status on exit. 1 means link beat detected, 2 stands for link beat not detected, everything else is an error. -W | --wait-on-kill
- When killing a running daemon (with -k) wait until the daemon died. -x | --extra-arg= ARG
- Specify an extra argument to be passed to the action script. -M | --monitor
- Don't fail when the network interface is not available, instead use NETLINK to monitor device avaibility. The is useful for PCMCIA devices and similar. -h | --help
- Show help -k | --kill
- Kill a running daemon (Specify -i to select the daemon instance to kill) -c | --check-running
- Check if a daemon is running for a given network interface. Sets the return value to 0 if a daemon is already running or to 255 if not. -v | --version
- Show version -S | --supend
- Suspend a running daemon. The daemon will no longer check the link status until it is resumed (-R) again. (Specify -i to select the daemon instance to suspend.) -R | --resume
- Resume a suspended daemon. (Specify -i to select the daemon instance to resume.) -z | --info
- Request that a running daemon shall write its status information to syslog. (Specify -i to select the daemon instance to send the request to.)
Files
/etc/ifplugd/ifplugd.conf: this file is sourced by the init script /etc/init.d/ifplugd and contains the interface to be monitored and the options to be used.
/etc/ifplugd/ifplugd.action: this is the script which will be called by the daemon whenever the state of the interface changes. It takes two areguments: the first is the interface name (eg. eth0), the second either "up" or "down".
/var/run/ifplugd.<iface>.pid: the pid file for ifplugd.
Environment
The action script will be called with two environment variables set:
IFPLUGD_PREVIOUS The previous link status. Either "up", "down", "error" or "disabled". The former values should be obvious, the latter is set on daemon startup.
IFPLUGD_CURRENT The current link status. See above for possible values.
Signals
SIGINT, SIGTERM ifplugd will quit, possibly running the shutdown script. This is issued by passing -k to ifplugd.
SIGQUIT ifplugd will quit, the shutdown script is never run.
SIGHUP ifplugd will write its status information to syslog. This is issued by -z.
SIGUSR1 ifplugd will go to suspend mode. (-S)
SIGUSR2 ifplugd will resume from suspend mode. (-R)
Author
ifplugd was written by Lennart Poettering <mzvscyhtq (at) 0pointer (dot) de>. ifplugd is available at http://0pointer.de/lennart/projects/ifplugd/
See Also
ifplugd.conf(5), ifup(8), interfaces(5), ifconfig(8), ifplugstatus(8)
Comments
This man page was written using xmltoman(1) by Oliver Kurth.
Referenced By
waproamd(8)
转自http://blog.chinaunix.net/uid-9672747-id-3278700.html
-n Don't daemonize
-s Don't log to syslog
-i IFACE Interface
-f/-F Treat link detection error as link down/link up
(otherwise exit on error)
-a Don't up interface at each link probe
-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
-p Don't run script on daemon startup
-q Don't run script on daemon quit
-l Run script on startup even if no cable is detected
-t SECS Poll time in seconds
-u SECS Delay before running script after link up
-d SECS Delay after link down
-m MODE API mode (mii, priv, ethtool, wlan, iff, auto)
-k Kill running daemon
ifplugd(eth0): started: BusyBox v1.16.1 (2011-01-28 11:42:48 HKT)
ifplugd(eth0): using SIOCETHTOOL detection mode
ifplugd(eth0): link is up
ifplugd(eth0): executing '/etc/network/if.sh eth0 up'
ifplugd(eth0): exit code: 0
GMAC:eth0: Link is down
ifplugd(eth0): link is down
ifplugd(eth0): executing '/etc/network/if.sh eth0 down'
ifplugd(eth0): exit code: 0
GMAC:eth0 : Link is Up
ifplugd(eth0): link is up
ifplugd(eth0): executing '/etc/network/if.sh eth0 up'
ifplugd(eth0): exit code: 0
echo "if1.sh"
echo $#
echo $0
echo $1
echo $2
if [ $# -eq 2 ];then
if [ $1 = "eth0" ];then
echo -n "ech0 "
fi
if [ $2 = "up" ];then
echo "up"
exec /etc/network/net_up
elif [ $2 = "down" ];then
echo "down"
exec /etc/network/net_down
elif [ $2 = "disable" ];then
echo "disable"
elif [ $2 = "error" ];then
echo "error"
fi
fi