/usr/libexec/ifupdown-ng/program - ifupdown executor
protocol
The ifupdown executors are programs that are typically installed
into the ifupdown-ng executor path. They follow a specific protocol
documented in this man page.
Executors are run to react to nine different phases and are not
required to take any specific action. These phases are:
depend
Called to determine if the executor wishes to change the
dependency graph. The executor should write a space-delimited list of
interface names it is dependent upon to stdout. Those interface names
will be merged into the dependency graph. If an executor does not have any
dependencies, it may simply exit 0 without doing anything.
create
Called before pre-up, to explicitly allow for
interface creation if necessary.
pre-up
Called before the interface is going to be brought
up.
up
Called when the interface is being brought up.
post-up
Called after the interface was successfully brought
up.
pre-down
Called before the interface is going to be taken
down.
down
Called when the interface is being taken down.
post-down
Called after the interface was successfully taken
down.
destroy
Called after post-down to allow for explicitly
destroying an interface if necessary.
Executors are guaranteed to run with a core set of environment
variables:
IFACE
The name of the interface being configured.
INTERFACES_FILE
The path to the interfaces database file being
used.
MODE
Either start, stop or depend
depending on phase. This environment variable is present for compatibility
with legacy ifupdown scripts and should not be used in ifupdown-ng
executors.
PHASE
The phase being executed. See the phases section for more
information about phases.
VERBOSE
If present, verbose output is expected from the
executor.
Additionally, the properties associated with an interface are
provided to executors. The keys are rewritten to begin with IF_ and are
capitalized with dashes converted to underscores. For example, the property
bridge-ports will be rewritten as IF_BRIDGE_PORTS.
ifup(8)
ifdown(8)
interfaces(5)
Ariadne Conill <ariadne@dereferenced.org>