systemctl: downgrade log level of ECONNREFUSED from system dbus.service

To suppress log message when 'systemctl poweroff' or friends invoked in
rescue shell, which does not have dbus.service.
This commit is contained in:
Yu Watanabe
2024-12-11 18:08:26 +09:00
parent 77064620d7
commit c577fe65f3
5 changed files with 18 additions and 11 deletions
+2 -2
View File
@@ -66,7 +66,7 @@ int logind_reboot(enum action a) {
if (!actions[a])
return -EINVAL;
r = acquire_bus(BUS_FULL, &bus);
r = acquire_bus_full(BUS_FULL, /* graceful = */ true, &bus);
if (r < 0)
return r;
@@ -151,7 +151,7 @@ int logind_check_inhibitors(enum action a) {
if (arg_transport != BUS_TRANSPORT_LOCAL)
return 0;
r = acquire_bus(BUS_FULL, &bus);
r = acquire_bus_full(BUS_FULL, /* graceful = */ true, &bus);
if (r == -ECONNREFUSED && geteuid() == 0)
return 0; /* When D-Bus is not running, allow root to force a shutdown. E.g. when running at
* the emergency console. */
+3 -2
View File
@@ -32,7 +32,7 @@
static sd_bus *buses[_BUS_FOCUS_MAX] = {};
int acquire_bus(BusFocus focus, sd_bus **ret) {
int acquire_bus_full(BusFocus focus, bool graceful, sd_bus **ret) {
int r;
assert(focus < _BUS_FOCUS_MAX);
@@ -54,7 +54,8 @@ int acquire_bus(BusFocus focus, sd_bus **ret) {
else
r = bus_connect_transport(arg_transport, arg_host, arg_runtime_scope, &buses[focus]);
if (r < 0)
return bus_log_connect_error(r, arg_transport, arg_runtime_scope);
return bus_log_connect_full(graceful && focus == BUS_FULL && r == -ECONNREFUSED ? LOG_DEBUG : LOG_ERR,
r, arg_transport, arg_runtime_scope);
(void) sd_bus_set_allow_interactive_authorization(buses[focus], arg_ask_password);
}
+4 -1
View File
@@ -13,7 +13,10 @@ typedef enum BusFocus {
_BUS_FOCUS_MAX
} BusFocus;
int acquire_bus(BusFocus focus, sd_bus **ret);
int acquire_bus_full(BusFocus focus, bool graceful, sd_bus **ret);
static inline int acquire_bus(BusFocus focus, sd_bus **ret) {
return acquire_bus_full(focus, false, ret);
}
void release_busses(void);
void ask_password_agent_open_maybe(void);