- genapkovl now explicitly chmod +x init.d/* and usr/local/bin/* after cp - add bee-net-restart command (short name, no .sh) and /etc/profile.d/bee.sh for PATH - udhcpc: add & to ensure non-blocking even when DHCP responds immediately - motd: short commands without paths Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
32 lines
957 B
Bash
32 lines
957 B
Bash
#!/bin/sh
|
|
# bee-network.sh — bring up all physical network interfaces via DHCP
|
|
# Unattended: runs silently, logs results, never blocks.
|
|
|
|
LOG_PREFIX="bee-network"
|
|
|
|
log() { echo "[$LOG_PREFIX] $*"; }
|
|
|
|
# find physical interfaces: exclude lo and virtual (docker/virbr/veth/tun/tap)
|
|
interfaces=$(ip -o link show \
|
|
| awk -F': ' '{print $2}' \
|
|
| grep -v '^lo$' \
|
|
| grep -vE '^(docker|virbr|veth|tun|tap|br-|bond|dummy)' \
|
|
| sort)
|
|
|
|
if [ -z "$interfaces" ]; then
|
|
log "no physical interfaces found"
|
|
exit 0
|
|
fi
|
|
|
|
for iface in $interfaces; do
|
|
log "bringing up $iface"
|
|
ip link set "$iface" up 2>/dev/null || { log "WARN: could not bring up $iface"; continue; }
|
|
|
|
# DHCP in background: -b forks if no immediate lease, & ensures non-blocking always.
|
|
# -t 0: unlimited retries, -T 3: 3s per attempt. No -q: stay running to renew lease.
|
|
udhcpc -i "$iface" -b -t 0 -T 3 &
|
|
log "DHCP started for $iface (pid $!)"
|
|
done
|
|
|
|
log "done"
|