diff --git a/src/service/daemonctl.hpp b/src/service/daemonctl.hpp
index 7f567653cf79d594c0841c3edcceb29cb351eae2..b32847aca155f69bbc897111650d07185214cd0c 100644
--- a/src/service/daemonctl.hpp
+++ b/src/service/daemonctl.hpp
@@ -5,6 +5,9 @@
 ATTR_NONNULL_ALL
 void dctl_status_msg(const char* msg);
 
+ATTR_NONNULL_ALL
+void dctl_status_err(const char *msg);
+
 void dctl_status_ready();
 void dctl_status_reload();
 void dctl_status_shutdown();
diff --git a/src/service/daemonctl_rcd.cpp b/src/service/daemonctl_rcd.cpp
index 84bf39e341d4cbda184c9d062d6e5e7af345f2c1..ca170b90d8aae81e06f63cc872fbaedfa14b9da8 100644
--- a/src/service/daemonctl_rcd.cpp
+++ b/src/service/daemonctl_rcd.cpp
@@ -7,6 +7,11 @@ void dctl_status_msg(const char* msg) {
     (void)msg;
 }
 
+ATTR_WEAK
+void dctl_status_err(const char *msg) {
+    (void)msg;
+}
+
 ATTR_WEAK
 void dctl_status_ready() {
 
diff --git a/src/service/daemonctl_systemd.cpp b/src/service/daemonctl_systemd.cpp
index c9e4920e4837050b2d5e34321c9a49578f763050..e399dde45a9e859ae3f26347625442285df125a8 100644
--- a/src/service/daemonctl_systemd.cpp
+++ b/src/service/daemonctl_systemd.cpp
@@ -12,6 +12,12 @@ void dctl_status_msg(const char* msg) {
     std::cout << SD_INFO << "STATUS=" << msg << std::endl;
 }
 
+ATTR_NONNULL_ALL
+void dctl_status_err(const char *msg) {
+    sd_notifyf(0, "STATUS=%s", msg);
+    std::cerr << SD_ERR << "STATUS=" << msg << std::endl;
+}
+
 void dctl_status_ready() {
     sd_notify(0, "READY=1");
 }