/etc/network/if-up.d/upstart is in ifupdown 0.8.10ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #!/bin/sh -e
MARK_DEV_PREFIX="/run/network/ifup."
MARK_STATIC_NETWORK_EMITTED="/run/network/static-network-up-emitted"
if [ -e /lib/lsb/init-functions ]; then
. /lib/lsb/init-functions
fi
if ! init_is_upstart; then
exit 0
fi
# Let's ignore meta entries (ifup -a)
if [ "$ADDRFAM" = "meta" ]; then
exit 0
fi
# lo emission handled by /etc/init/network-interface.conf
if [ "$IFACE" != lo ]; then
initctl emit -n net-device-up \
"IFACE=$IFACE" \
"LOGICAL=$LOGICAL" \
"ADDRFAM=$ADDRFAM" \
"METHOD=$METHOD"
fi
get_auto_interfaces() {
# write to stdout a list of interfaces configured as 'auto' in interfaces(5)
local found=""
# stderr redirected as it outputs things like:
# Ignoring unknown interface eth0=eth0.
found=$(ifquery --list --allow auto 2>/dev/null) || return
set -- ${found}
echo "$@"
}
all_interfaces_up() {
# return true if all interfaces listed in /etc/network/interfaces as 'auto'
# are up. if no interfaces are found there, then "all [given] were up"
local prefix="$1" iface=""
for iface in $(get_auto_interfaces); do
# if cur interface does is not up, then all have not been brought up
[ -f "${prefix}${iface}" ] || return 1
done
return 0
}
# touch our own "marker" indicating that this interface has been brought up.
: > "${MARK_DEV_PREFIX}$IFACE"
if all_interfaces_up "${MARK_DEV_PREFIX}" &&
mkdir "${MARK_STATIC_NETWORK_EMITTED}" 2>/dev/null; then
initctl emit --no-wait static-network-up
fi
|