DHCPCD-RUN-HOOKS(8) | System Manager's Manual | DHCPCD-RUN-HOOKS(8) |
dhcpcd-run-hooks
—
DHCP client configuration script
dhcpcd-run-hooks
is used by
dhcpcd(8) to run any system and user defined hook scripts.
System hook scripts are found in
/usr/lib/dhcpcd/dhcpcd-hooks and the user defined
hooks are /etc/dhcpcd.enter-hook. and
/etc/dhcpcd.exit-hook. The default install supplies
hook scripts for configuring /etc/resolv.conf and
the hostname. Your distribution may have included other hook scripts to say
configure ntp or ypbind. A test hook is also supplied that simply echos the
dhcp variables to the console from DISCOVER message.
The hooks scripts are loaded into the current shell rather than
executed in their own process. This allows each hook script, such as
/etc/dhcpcd.enter-hook to customise environment
variables or provide alternative functions to hooks further down the chain.
As such, using the shell builtins exit
,
exec
or similar will cause
dhcpcd-run-hooks
to exit at that point.
Each time dhcpcd-run-hooks
is invoked,
$interface
is set to the interface that
dhcpcd
is run on and $reason
is to the reason why q dhcpcd-run-hooks
was invoked.
DHCP information to be configured is held in variables starting with the
word new_ and old DHCP information to be removed is held in variables
starting with the word old_. dhcpcd
can display the
full list of variables it knows how about by using the
-V
, --variables
argument.
Here's a list of reasons why
dhcpcd-run-hooks
could be invoked:
PREINIT
CARRIER
NOCARRIER
NOCARRIER_ROAMING
INFORM
|
INFORM6
BOUND
|
BOUND6
RENEW
|
RENEW6
REBIND
|
REBIND6
REBOOT
|
REBOOT6
DELEGATED6
IPV4LL
STATIC
3RDPARTY
TIMEOUT
EXPIRE
|
EXPIRE6
NAK
RECONFIGURE
ROUTERADVERT
STOP
|
STOP6
STOPPED
DEPARTED
FAIL
TEST
dhcpcd
will clear the environment
variables aside from $PATH
. The following variables
will then be set, along with any protocol supplied ones.
$interface
$protocol
$reason
$pid
dhcpcd
.$ifcarrier
$interface
:
unknown
, up
or
down
.$ifmetric
$interface
preference, lower is better.$ifwireless
1 if
$interface
is wireless, otherwise
0
.$ifflags
$interface
flags.$ifmtu
$interface
MTU.$ifssid
interface
is connected
to.$interface_order
$if_up
true
if the interface
is up, otherwise
false
. This is more than IFF_UP and may not be
equal.$if_down
true
if the interface
is down, otherwise
false
. This is more than IFF_UP and may not be
equal.$af_waiting
$profile
$new_delegated_dhcp6_prefix
When dhcpcd-run-hooks
runs, it loads
/etc/dhcpcd.enter-hook and any scripts found in
/usr/lib/dhcpcd/dhcpcd-hooks in a lexical order and
then finally /etc/dhcpcd.exit-hook
Roy Marples <roy@marples.name>
Please report them to http://roy.marples.name/projects/dhcpcd
dhcpcd
will validate the content of each
option against its encoding. For string, ascii, raw or binhex encoding it's
up to the user to validate it for the intended purpose.
When used in a shell script, each variable must be quoted correctly.
December 27, 2020 | Debian |