dhcp: add systemd service file

Add a systemd service file to start dhcpd.

The network interfaces to listen on can be set via the variable
INTERFACES in /etc/default/dhcpd.conf. Example:

  INTERFACES="eth0 eth1"

Also install a tmpfiles.d file to create /var/lib/dhcp/dhcpd.leases
(needed at dhcpd start-up).

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Eric Le Bihan 2014-09-15 23:04:43 +02:00 committed by Thomas Petazzoni
parent 146f69ec79
commit 938056f948
2 changed files with 28 additions and 0 deletions

View File

@ -73,6 +73,21 @@ define DHCP_INSTALL_INIT_SYSV
$(TARGET_DIR)/etc/init.d/S80dhcp-relay
endef
define DHCP_INSTALL_INIT_SYSTEMD
$(INSTALL) -D -m 644 package/dhcp/dhcpd.service \
$(TARGET_DIR)/lib/systemd/system/dhcpd.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
ln -sf ../../../../lib/systemd/system/dhcpd.service \
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/dhcpd.service
echo "d /var/lib/dhcp 0755 - - - -" > \
$(TARGET_DIR)/usr/lib/tmpfiles.d/dhcpd.conf
echo "f /var/lib/dhcp/dhcpd.leases - - - - -" >> \
$(TARGET_DIR)/usr/lib/tmpfiles.d/dhcpd.conf
endef
define DHCP_INSTALL_TARGET_CMDS
$(DHCP_INSTALL_RELAY)
$(DHCP_INSTALL_SERVER)

View File

@ -0,0 +1,13 @@
[Unit]
Description=DHCP server
After=network.target
[Service]
Type=forking
PIDFile=/run/dhcpd.pid
ExecStart=/usr/sbin/dhcpd -q -pf /run/dhcpd.pid $INTERFACES
KillSignal=SIGINT
EnvironmentFile=/etc/default/dhcpd.conf
[Install]
WantedBy=multi-user.target