netplugd - Man Page

network cable hotplug management daemon

Synopsis

netplugd[-FP] [-c config_file] [-i interface_pattern] [-p pid_file]

Description

netplugd is a daemon that responds to network link events from the Linux kernel, such as a network interface losing or acquiring a carrier signal.

When an Ethernet-style network interface on a host is plugged into a powered-up switch, hub, or other host, the two use a carrier signal to establish that the link is alive. The Linux kernel makes this information available through its netlink(7) interface.

The netplugd daemon listens for carrier detection and loss messages from the kernel's netlink(7) subsystem. When a carrier signal is detected on an interface, it runs a script to bring the interface up. When carrier is lost, netplugd runs a script to bring the interface down. netplugd does not define any policies for how to manage interfaces; it leaves that to a script, /etc/netplug.d/netplug, which is described in Files below.

You tell netplugd which interfaces it should manage by giving it a list of shell-style glob patterns, which it matches against using the fnmatch(3) function. For example, a pattern of eth[13] will tell netplugd to only manage eth1 and eth3, if those interfaces exist. If the interfaces are not known to the kernel at the time you start netplugd, perhaps because they are unplugged PCMCIA network interfaces or devices whose drivers have not yet been installed, netplugd will start to manage them as soon as they are plugged in or their drivers are available.

Options

-F

Run in the foreground; do not detach and run as a daemon. Messages are logged to stdout or stderr, instead of using the syslog(3) mechanism. This option is useful mainly for debugging your configuration.

-P

Prevent autoprobing for interfaces. The netplugd daemon normally probes for all possible interface names that might match the patterns you tell it to manage. This is necessary in order to get network driver modules (the default with almost all Linux distributions) loaded and set up, so that they can provide link status notifications to the netplugd daemon. Autoprobing should always be safe, and doesn't take long. Disable it with caution.

-c config_file

Specify the name of a file from which to read patterns that describe the interfaces to manage. You can provide this option multiple times to read from more than one file. If you do not provide this option at all, netplugd will attempt to read from a default config file. If you do not want netplugd to try to read from any real config files, you can specify /dev/null as a config file.

-i interface_pattern

Specify a pattern that will be used to match interface names that netplugd should manage. You can provide this option multiple times to specify multiple patterns.

-p pid_file

Write the daemon's process ID to the file pid_file. If you tell netplugd to run in the foreground, this option is ignored.

Files

/etc/netplug.d/netplugd.conf

Default config file to read, if none is specified on the command line. The config file format is one pattern per line, with white space, empty lines, and comments starting with a # character ignored. Patterns are standard shell-style glob patterns, e.g. "eth[0-9]".

/etc/netplug.d/netplug

The "policy" program (typically a shell script) that netplugd uses to probe for interfaces, and to bring them up or down in response to network link events. This program is called with the name of the interface as its first argument, and one of the following options:

in

A cable was plugged in, or carrier came up. The command should bring the interface up. The command is run asynchronously, and it should exit with status 0 on success.

out

A cable was plugged out, or carrier went down. The command should bring the interface down. The command is run asynchronously, and it should exit with status 0 on success.

probe

The command should load and initialise the driver for this interface, if possible, and bring the interface into the "up" state, so that it can generate netlink(7) events. The command is run synchronously; it must exit with status code 0 if it succeeds, otherwise with a non-zero exit code or signal.

Author

netplugd was written by Bryan O'Sullivan <bos@serpentine.com>.

See Also

cardmgr(5), hotplug(8), ip(8), netlink(7)

Info

August 26, 2003