The dhcpd daemon does not require network interface names to be specified on the command line. >From dhcpd(8): "The names of the network interfaces on which dhcpd should listen for broadcasts may be specified on the command line. This should be done on systems where dhcpd is unable to identify non-broadcast interfaces, but should not be required on other systems. If no interface names are specified on the command line dhcpd will identify all network interfaces which are up, eliminating non-broadcast interfaces if possible, and listen for DHCP broadcasts on each interface." dhcpd exits with "Not configured to listen on any interfaces!" only if no requested (those in INTERFACES, or all if empty) non-broadcast interfaces matching the subnet declarations in dhcpd.conf are up. Signed-off-by: Benoît Thébaudeau <benoit@wsystem.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
51 lines
1.2 KiB
Bash
Executable File
51 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $Id: dhcp3-server.init.d,v 1.4 2003/07/13 19:12:41 mdz Exp $
|
|
#
|
|
|
|
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
|
|
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
|
|
INTERFACES=""
|
|
|
|
# Additional options that are passed to the DHCP server daemon?
|
|
OPTIONS=""
|
|
|
|
NAME="dhcpd"
|
|
DAEMON="/usr/sbin/${NAME}"
|
|
CFG_FILE="/etc/default/${NAME}"
|
|
|
|
# Read configuration variable file if it is present
|
|
[ -r "${CFG_FILE}" ] && . "${CFG_FILE}"
|
|
|
|
# Sanity checks
|
|
test -f /usr/sbin/dhcpd || exit 0
|
|
test -f /etc/dhcp/dhcpd.conf || exit 0
|
|
|
|
case "$1" in
|
|
start)
|
|
printf "Starting DHCP server: "
|
|
test -d /var/lib/dhcp/ || mkdir -p /var/lib/dhcp/
|
|
test -f /var/lib/dhcp/dhcpd.leases || touch /var/lib/dhcp/dhcpd.leases
|
|
start-stop-daemon -S -x ${DAEMON} -- -q $OPTIONS $INTERFACES
|
|
[ $? = 0 ] && echo "OK" || echo "FAIL"
|
|
;;
|
|
stop)
|
|
printf "Stopping DHCP server: "
|
|
start-stop-daemon -K -x ${DAEMON}
|
|
[ $? = 0 ] && echo "OK" || echo "FAIL"
|
|
;;
|
|
restart | force-reload)
|
|
$0 stop
|
|
sleep 2
|
|
$0 start
|
|
if [ "$?" != "0" ]; then
|
|
exit 1
|
|
fi
|
|
;;
|
|
*)
|
|
echo "Usage: /etc/init.d/dhcp-server {start|stop|restart|force-reload}"
|
|
exit 1
|
|
esac
|
|
|
|
exit 0
|