blob: f5df8aee55acc3062e8c6e854991938e6e7dd265 [file] [log] [blame]
#pragma once
#include "config.h"
#include <sdbusplus/bus.hpp>
namespace phosphor
{
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();
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, "replace");
bus.call_noreply(method);
}
}
} // namespace rsyslog_utils
} // namespace phosphor