summaryrefslogtreecommitdiffstats
path: root/phosphor-rsyslog-config/utils.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'phosphor-rsyslog-config/utils.hpp')
-rw-r--r--phosphor-rsyslog-config/utils.hpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/phosphor-rsyslog-config/utils.hpp b/phosphor-rsyslog-config/utils.hpp
index 017a439..30799cd 100644
--- a/phosphor-rsyslog-config/utils.hpp
+++ b/phosphor-rsyslog-config/utils.hpp
@@ -10,14 +10,27 @@ namespace rsyslog_utils
{
/** @brief Restart rsyslog's systemd unit
+ * Ensures that it is restarted even if the start limit was
+ * hit in systemd.
*/
void restart()
{
auto bus = sdbusplus::bus::new_default();
- auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
- SYSTEMD_INTERFACE, "RestartUnit");
- method.append("rsyslog.service", "replace");
- bus.call_noreply(method);
+ constexpr char service[] = "rsyslog.service";
+
+ {
+ auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
+ SYSTEMD_INTERFACE, "ResetFailedUnit");
+ method.append(service);
+ bus.call_noreply(method);
+ }
+
+ {
+ auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
+ SYSTEMD_INTERFACE, "RestartUnit");
+ method.append(service);
+ bus.call_noreply(method);
+ }
}
} // namespace rsyslog_utils
OpenPOWER on IntegriCloud