diff options
Diffstat (limited to 'phosphor-rsyslog-config/utils.hpp')
-rw-r--r-- | phosphor-rsyslog-config/utils.hpp | 21 |
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 |