[pkg-dhcp-devel] Bug#792894: systemd units for dhcp server (addressing ipv4 and ipv6)

Marc Haber mh+debian-packages at zugschlus.de
Sun Jul 19 20:48:57 UTC 2015


Package: isc-dhcp-server
Version: 4.3.2-1
Severity: wishlist

Hi,

in order to address #592539, I have written a bunch of systemd units
which take care of starting isc-dhcp-server without the init script,
catering for IPv6 setups.

These units activate themselves for IPv4 if dhcpd.conf or dhcpd4.conf
is found, and for IPv6 if dhcp6d.conf is found. Due to shortcomings in
the semantics of a systemd unit, /etc/default/isc-dhcp-server is not
honored any more at all.

These are my first systemd units, so there might be beginner's errors.

They are meant to go in /lib/systemd/system, but were only tested on
my system in /etc/systemd/system.

isc-dhcp-server.target:
[Unit]
Description=ISC DHCP Server (all protocols)
After=network.target

[Install]
WantedBy=multi-user.target


isc-dhcp-server-v4.service:
[Unit]
Description=ISC DHCP Server for IPv4 (dhcpd4.conf)
After=network.target
ConditionPathExists=/etc/dhcp/dhcpd4.conf
PartOf=isc-dhcp-server.target

[Service]
Environment="DHCPD4_CONF=/etc/dhcp/dhcpd4.conf"
ExecStartPre=/usr/sbin/dhcpd -f -t -4 -q $OPTIONS -cf "$DHCPD4_CONF"
ExecStart=/usr/sbin/dhcpd -f -4 -q $OPTIONS -cf "$DHCPD4_CONF"

[Install]
WantedBy=isc-dhcp-server.target


isc-dhcp-server-v4-old.service:
[Unit]
Description=ISC DHCP Server for IPv4 (dhcpd.conf)
After=network.target
ConditionPathExists=/etc/dhcp/dhcpd.conf
PartOf=isc-dhcp-server.target

[Service]
Environment="DHCPD_CONF=/etc/dhcp/dhcpd.conf"
ExecStartPre=/usr/sbin/dhcpd -f -t -4 -q $OPTIONS -cf "$DHCPD_CONF"
ExecStart=/usr/sbin/dhcpd -f -4 -q $OPTIONS -cf "$DHCPD_CONF"

[Install]
WantedBy=isc-dhcp-server.target



isc-dhcp-server-v6.service:
[Unit]
Description=ISC DHCP Server for IPv6
After=network.target
ConditionPathExists=/etc/dhcp/dhcpd6.conf
PartOf=isc-dhcp-server.target

[Service]
Environment="DHCPD6_CONF=/etc/dhcp/dhcpd6.conf"
ExecStartPre=/usr/sbin/dhcpd -f -t -6 -q $OPTIONS -cf "$DHCPD6_CONF"
ExecStart=/usr/sbin/dhcpd -f -6 -q $OPTIONS -cf "$DHCPD6_CONF"

[Install]
WantedBy=isc-dhcp-server.target



I place those unit files under the ISC license and will relicense
freely if asked to by the package maintainers to ease packaging for
Debian.

Greetings
Marc



More information about the pkg-dhcp-devel mailing list