diff --git a/package/dhcp/dhcp.mk b/package/dhcp/dhcp.mk index 736635afe8..8b38fd0a22 100644 --- a/package/dhcp/dhcp.mk +++ b/package/dhcp/dhcp.mk @@ -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) diff --git a/package/dhcp/dhcpd.service b/package/dhcp/dhcpd.service new file mode 100644 index 0000000000..7b265cbf3f --- /dev/null +++ b/package/dhcp/dhcpd.service @@ -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