---
name: "ifplugd"
section: "8"
platform: "linux"
package: "ifplugd"
version: "0.28-18"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ifplugd"
---

# ifplugd(8)

A link detection daemon for ethernet devices

## 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)](/ifplugd.conf/5.md)**, **[ifup(8)](/ifup/8.md)**, **[interfaces(5)](/interfaces/5.md)**, **[ifconfig(8)](/ifconfig/8.md)**, **[ifplugstatus(8)](/ifplugstatus/8.md)**

## COMMENTS

This man page was written using **[xmltoman(1)](/xmltoman/1.md)** by Oliver Kurth.
