Public bug reported: Package isc-dhcp-server 4.3.3 on Ubuntu 16.04 LTS.
On earlier (pre-systemd) systems, one could point dhcpd at a configuration file in any location by setting CONFIG_FILE=/new/path/dhcpd.conf in /etc/default/isc-dhcp-server. In this version such setting is ignored; dhcpd always uses the default /etc/dhcp/dhcpd.conf. In more formulaeic terms: Put CONFIG_FILE=/var/dhcpconf/mydhcp.conf in /etc/default/isc-dhcp-server. I expect that when service isc-dhcp-server is next started, it will use that configuration file. In fact it still uses /etc/dhcp/dhcpd.conf. The problem can be worked around by making /etc/dhcp/dhcpd.conf a symlink to the desired config file, but why have /etc/default/isc-dhcp- server at all if it doesn't work? The offending code is in /lib/systemd/system/isc-dhcp-server.service. Here is a relevant extract: [Service] EnvironmentFile=/etc/default/isc-dhcp-server RuntimeDirectory=dhcp-server # The leases files need to be root:dhcpd even when dropping privileges ExecStart=/bin/sh -ec '\ CONFIG_FILE=/etc/dhcp/dhcpd.conf; \ if [ -f /etc/ltsp/dhcpd.conf ]; then CONFIG_FILE=/etc/ltsp/dhcpd.conf; fi; \ [ -e /var/lib/dhcp/dhcpd.leases ] || touch /var/lib/dhcp/dhcpd.leases; \ chown root:dhcpd /var/lib/dhcp /var/lib/dhcp/dhcpd.leases; \ chmod 775 /var/lib/dhcp ; chmod 664 /var/lib/dhcp/dhcpd.leases; \ exec dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf $CONFIG_FILE $INTERFACES' /etc/default/isc-dhcp-server is correctly read as an EnvironmentFile, but the ExecStart command unconditionally sets CONFIG_FILE, discarding any value from the /etc/default file. One fix might be to change the first few lines of the ExecStart to check whether $CONFIG_FILE has been set, and perhaps whether it is still the default value: ExecStart=/bin/sh -ec '\ case $CONFIG_FILE in \ ""|/etc/dhcp/dhcpd.conf) \ CONFIG_FILE=/etc/dhcp/dhcpd.conf; \ if [ -f /etc/ltsp/dhcpd.conf ]; then CONFIG_FILE=/etc/ltsp/dhcpd.conf; fi; \ ;; \ esac Or it might make more sense to let whatever package is in charge of ltsp configuration append CONFIG_FILE=/etc/ltsp/dhcpd.conf to /etc/defaults /isc-dhcp-server, and replace the lines above with a simple ExecStart=/bin/sh -ec '\ CONFIG_FILE=${CONFIG_FILE:-/etc/dhcp/dhcpd.conf}; \ Either way, a fix would be appreciated. ** Affects: isc-dhcp (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1824433 Title: dhcpd ignores $CONFIG_FILE in /etc/default/isc-dhcp-server To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/1824433/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs