diff --git a/subprojects/dhcp-done/dhcp-done.cpp b/subprojects/dhcp-done/dhcp-done.cpp
index dae06db..e4fcbc0 100644
--- a/subprojects/dhcp-done/dhcp-done.cpp
+++ b/subprojects/dhcp-done/dhcp-done.cpp
@@ -19,9 +19,16 @@
 #include <stdplus/fd/create.hpp>
 #include <stdplus/fd/ops.hpp>
 
+using namespace std::string_view_literals;
+
 // A privileged port that is reserved for querying BMC DHCP completion.
 // This is well known by the clients querying the status.
 constexpr uint16_t kListenPort = 23;
+enum : uint8_t
+{
+    DONE = 0,
+    POWERCYCLE = 1,
+};
 
 stdplus::ManagedFd createListener()
 {
@@ -37,8 +44,30 @@
     return sock;
 }
 
-int main()
+int main(int argc, char* argv[])
 {
+    if (argc != 2)
+    {
+        fmt::print(stderr, "Invalid parameter count\n");
+        return 1;
+    }
+
+    std::vector<uint8_t> data;
+
+    if (argv[1] == "POWERCYCLE"sv)
+    {
+        data.push_back(POWERCYCLE);
+    }
+    else if (argv[1] == "DONE"sv)
+    {
+        data.push_back(DONE);
+    }
+    else
+    {
+        fmt::print(stderr, "Invalid parameter\n");
+        return 1;
+    }
+
     try
     {
         auto listener = createListener();
@@ -46,8 +75,11 @@
         sdeventplus::source::IO do_accept(
             event, listener.get(), EPOLLIN | EPOLLET,
             [&](sdeventplus::source::IO&, int, uint32_t) {
-                while (stdplus::fd::accept(listener))
-                    ;
+                while (auto fd = stdplus::fd::accept(listener))
+                {
+                    stdplus::fd::sendExact(*fd, data,
+                                           stdplus::fd::SendFlags(0));
+                }
             });
         return event.loop();
     }
diff --git a/subprojects/dhcp-done/dhcp-done.service.in b/subprojects/dhcp-done/dhcp-done@.service.in
similarity index 69%
rename from subprojects/dhcp-done/dhcp-done.service.in
rename to subprojects/dhcp-done/dhcp-done@.service.in
index 9fa5e24..ece864b 100644
--- a/subprojects/dhcp-done/dhcp-done.service.in
+++ b/subprojects/dhcp-done/dhcp-done@.service.in
@@ -3,4 +3,4 @@
 
 [Service]
 Restart=on-failure
-ExecStart=@@BIN@ dhcp-done
+ExecStart=@@BIN@ dhcp-done %I
diff --git a/subprojects/dhcp-done/meson.build b/subprojects/dhcp-done/meson.build
index a72690b..8f0272f 100644
--- a/subprojects/dhcp-done/meson.build
+++ b/subprojects/dhcp-done/meson.build
@@ -44,7 +44,7 @@
 
 configure_file(
   configuration: {'BIN': libexecdir / 'dhcp-done'},
-  input: 'dhcp-done.service.in',
-  output: 'dhcp-done.service',
+  input: 'dhcp-done@.service.in',
+  output: 'dhcp-done@.service',
   install_mode: 'rw-r--r--',
   install_dir: systemunitdir)
