xref: /openbmc/phosphor-logging/phosphor-rsyslog-config/utils.hpp (revision bc89289f48ce5e1c8e5c66e657a176a0cd881d39)
1c4966192SDeepak Kodihalli #pragma once
2c4966192SDeepak Kodihalli 
3c4966192SDeepak Kodihalli #include "config.h"
4f18bf836SPatrick Venture 
5c4966192SDeepak Kodihalli #include <sdbusplus/bus.hpp>
6c4966192SDeepak Kodihalli 
7c4966192SDeepak Kodihalli namespace phosphor
8c4966192SDeepak Kodihalli {
9c4966192SDeepak Kodihalli namespace rsyslog_utils
10c4966192SDeepak Kodihalli {
11c4966192SDeepak Kodihalli 
12c4966192SDeepak Kodihalli /** @brief Restart rsyslog's systemd unit
13*bc89289fSWilliam A. Kennington III  *         Ensures that it is restarted even if the start limit was
14*bc89289fSWilliam A. Kennington III  *         hit in systemd.
15c4966192SDeepak Kodihalli  */
16c4966192SDeepak Kodihalli void restart()
17c4966192SDeepak Kodihalli {
18c4966192SDeepak Kodihalli     auto bus = sdbusplus::bus::new_default();
19*bc89289fSWilliam A. Kennington III     constexpr char service[] = "rsyslog.service";
20*bc89289fSWilliam A. Kennington III 
21*bc89289fSWilliam A. Kennington III     {
22*bc89289fSWilliam A. Kennington III         auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
23*bc89289fSWilliam A. Kennington III                                           SYSTEMD_INTERFACE, "ResetFailedUnit");
24*bc89289fSWilliam A. Kennington III         method.append(service);
25*bc89289fSWilliam A. Kennington III         bus.call_noreply(method);
26*bc89289fSWilliam A. Kennington III     }
27*bc89289fSWilliam A. Kennington III 
28*bc89289fSWilliam A. Kennington III     {
29f18bf836SPatrick Venture         auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
30f18bf836SPatrick Venture                                           SYSTEMD_INTERFACE, "RestartUnit");
31*bc89289fSWilliam A. Kennington III         method.append(service);
32c4966192SDeepak Kodihalli         bus.call_noreply(method);
33c4966192SDeepak Kodihalli     }
34*bc89289fSWilliam A. Kennington III }
35c4966192SDeepak Kodihalli 
36c4966192SDeepak Kodihalli } // namespace rsyslog_utils
37c4966192SDeepak Kodihalli } // namespace phosphor
38