ifplugd - A link detection daemon for ethernet devices


ifplugd [options]


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.


-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), overrides --no-beep-up and --no-beep-down.

-U | --no-beep-up

Do not beep on interface up (off)

-D | --no-beep-down

Do not beep on interface down (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)

-T | --poll-utime= USECS

Specify poll time in microseconds, added to -t (default: 0)

-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. 2 means link beat detected, 3 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.)


/etc/default/ifplugd: 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.


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.


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)


ifplugd was written by Lennart Poettering <mzvscyhtq (at) 0pointer (dot) de>. ifplugd is available at


ifplugd.conf(5), ifup(8), interfaces(5), ifconfig(8), ifplugstatus(8)


This man page was written using xmltoman(1) by Oliver Kurth.