I got the same issue, I've been analyzing the init script and noticed that nothing will be executed if no interfaces network is set to INTERFACES variables in /etc/default/isc-dhcp-server.
I've created to variables in /etc/default/isc-dhcp-server, DHCPDv4 and DHCPDv6 and checked for true|false and then call the related command for each variable if its enabled. I don't think a good idea relies on setting the network interfaces for INTERFACES variables, because the service don't do that, it just run on the subnet that found in config file, if the user decided to do that he can, but it's not essential.
--- isc-dhcp-server 2016-08-08 19:11:30.639671000 -0300 +++ /etc/init.d/isc-dhcp-server 2016-08-08 19:48:57.047671000 -0300 @@ -95,7 +95,7 @@ DESC="$5" shift 5 - INTERFACES="$*" + #INTERFACES="$*" test_config "$VERSION" "$CONF" log_daemon_msg "Starting $DESC" "$NAME" @@ -146,10 +146,16 @@ if test -n "$INTERFACESv4"; then start_daemon "-4" "$DHCPDv4_CONF" "$NAME4" \ "$DHCPDv4_PID" "$DESC4" "$INTERFACESv4" + else + start_daemon "-4" "$DHCPDv4_CONF" "$NAME4" \ + "$DHCPDv4_PID" "$DESC4" "$INTERFACESv4" fi if test -n "$INTERFACESv6"; then start_daemon "-6" "$DHCPDv6_CONF" "$NAME6" \ "$DHCPDv6_PID" "$DESC6" "$INTERFACESv6" + else + start_daemon "-6" "$DHCPDv6_CONF" "$NAME6" \ + "$DHCPDv6_PID" "$DESC6" "$INTERFACESv6" fi ;; stop) @@ -170,6 +176,9 @@ if test -n "$INTERFACESv4"; then echo -n "Status of $DESC4: " check_status -v $DHCPDv4_PID $NAME4 || exit $? + else + echo -n "Status of $DESC4: " + check_status -v $DHCPDv4_PID $NAME4 || exit $? fi if test -n "$INTERFACESv6"; then echo -n "Status of $DESC6: " --- isc-dhcp-server 2016-08-08 19:11:30.639671000 -0300 +++ /etc/init.d/isc-dhcp-server 2016-08-08 20:22:18.879671000 -0300 @@ -95,7 +95,7 @@ DESC="$5" shift 5 - INTERFACES="$*" + #INTERFACES="$*" test_config "$VERSION" "$CONF" log_daemon_msg "Starting $DESC" "$NAME" @@ -137,17 +137,12 @@ case "$1" in start) - if test -n "$INTERFACES" -a -z "$INTERFACESv4"; then - echo "DHCPv4 interfaces are no longer set by the INTERFACES variable in" >&2 - echo "/etc/default/isc-dhcp-server. Please use INTERFACESv4 instead." >&2 - echo "Migrating automatically for now, but this will go away in the future." >&2 - INTERFACESv4="$INTERFACES" - fi - if test -n "$INTERFACESv4"; then + if [ $DHCPD_ENABLED = true ]; then start_daemon "-4" "$DHCPDv4_CONF" "$NAME4" \ "$DHCPDv4_PID" "$DESC4" "$INTERFACESv4" fi - if test -n "$INTERFACESv6"; then + if [ $DHCPDv6_ENABLED = true ]; then + log_progress_msg "dhcpd" "dhcpdv6 is enabled"; start_daemon "-6" "$DHCPDv6_CONF" "$NAME6" \ "$DHCPDv6_PID" "$DESC6" "$INTERFACESv6" fi @@ -164,14 +159,11 @@ fi ;; status) - if test -n "$INTERFACES" -a -z "$INTERFACESv4"; then - INTERFACESv4="$INTERFACES" - fi - if test -n "$INTERFACESv4"; then + if [ $DHCPDv4_ENABLED = true ]; then echo -n "Status of $DESC4: " check_status -v $DHCPDv4_PID $NAME4 || exit $? fi - if test -n "$INTERFACESv6"; then + if [ $DHCPDv6_ENABLED = true ]; then echo -n "Status of $DESC6: " check_status -v $DHCPDv6_PID $NAME6 || exit $? fi
signature.asc
Description: OpenPGP digital signature