Implement generic restart systemd unit function
Change-Id: Ibd0ec4e7c3b9c395898673839ccf4de85616b201
Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
diff --git a/util.hpp b/util.hpp
index 6f27af9..3434aca 100644
--- a/util.hpp
+++ b/util.hpp
@@ -1,7 +1,10 @@
#pragma once
#include <unistd.h>
+
+#include "config.h"
#include "types.hpp"
+#include <sdbusplus/bus.hpp>
namespace phosphor
{
@@ -42,6 +45,24 @@
*/
IntfAddrMap getInterfaceAddrs();
+/** @brief Restart the systemd unit
+ * @param[in] unit - systemd unit name which needs to be
+ * restarted.
+ */
+inline void restartSystemdUnit(const std::string& unit)
+{
+ auto bus = sdbusplus::bus::new_default();
+ auto method = bus.new_method_call(
+ SYSTEMD_BUSNAME,
+ SYSTEMD_PATH,
+ SYSTEMD_INTERFACE,
+ "RestartUnit");
+
+ method.append(unit, "replace");
+ bus.call_noreply(method);
+
+}
+
} //namespace network
class Descriptor