chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
systemctl: show cgroup tree if cgroup is empty but has non-empty children
[elogind.git]
/
src
/
systemctl
/
systemctl.c
diff --git
a/src/systemctl/systemctl.c
b/src/systemctl/systemctl.c
index 7436d4e87537a6bb3f55594f0979476835fd6551..2ea5a3b0d8f19e9dfd937b40ad510b307794a783 100644
(file)
--- a/
src/systemctl/systemctl.c
+++ b/
src/systemctl/systemctl.c
@@
-1454,8
+1454,9
@@
static int cancel_job(DBusConnection *bus, char **args) {
return 0;
}
return 0;
}
-static
bool
need_daemon_reload(DBusConnection *bus, const char *unit) {
+static
int
need_daemon_reload(DBusConnection *bus, const char *unit) {
_cleanup_dbus_message_unref_ DBusMessage *reply = NULL;
_cleanup_dbus_message_unref_ DBusMessage *reply = NULL;
+ _cleanup_dbus_error_free_ DBusError error;
dbus_bool_t b = FALSE;
DBusMessageIter iter, sub;
const char
dbus_bool_t b = FALSE;
DBusMessageIter iter, sub;
const char
@@
-1465,6
+1466,8
@@
static bool need_daemon_reload(DBusConnection *bus, const char *unit) {
_cleanup_free_ char *n = NULL;
int r;
_cleanup_free_ char *n = NULL;
int r;
+ dbus_error_init(&error);
+
/* We ignore all errors here, since this is used to show a warning only */
n = unit_name_mangle(unit);
/* We ignore all errors here, since this is used to show a warning only */
n = unit_name_mangle(unit);
@@
-1478,7
+1481,7
@@
static bool need_daemon_reload(DBusConnection *bus, const char *unit) {
"org.freedesktop.systemd1.Manager",
"GetUnit",
&reply,
"org.freedesktop.systemd1.Manager",
"GetUnit",
&reply,
-
NULL
,
+
&error
,
DBUS_TYPE_STRING, &n,
DBUS_TYPE_INVALID);
if (r < 0)
DBUS_TYPE_STRING, &n,
DBUS_TYPE_INVALID);
if (r < 0)
@@
-1499,7
+1502,7
@@
static bool need_daemon_reload(DBusConnection *bus, const char *unit) {
"org.freedesktop.DBus.Properties",
"Get",
&reply,
"org.freedesktop.DBus.Properties",
"Get",
&reply,
-
NULL
,
+
&error
,
DBUS_TYPE_STRING, &interface,
DBUS_TYPE_STRING, &property,
DBUS_TYPE_INVALID);
DBUS_TYPE_STRING, &interface,
DBUS_TYPE_STRING, &property,
DBUS_TYPE_INVALID);
@@
-1565,7
+1568,7
@@
static DBusHandlerResult wait_filter(DBusConnection *connection, DBusMessage *me
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
-#ifndef LEGACY
+#ifndef
NO
LEGACY
dbus_error_free(&error);
if (dbus_message_get_args(message, &error,
DBUS_TYPE_UINT32, &id,
dbus_error_free(&error);
if (dbus_message_get_args(message, &error,
DBUS_TYPE_UINT32, &id,
@@
-1919,7
+1922,7
@@
static int start_unit_one(
return -EIO;
}
return -EIO;
}
- if (need_daemon_reload(bus, n))
+ if (need_daemon_reload(bus, n)
> 0
)
log_warning("Warning: Unit file of %s changed on disk, 'systemctl %sdaemon-reload' recommended.",
n, arg_scope == UNIT_FILE_SYSTEM ? "" : "--user ");
log_warning("Warning: Unit file of %s changed on disk, 'systemctl %sdaemon-reload' recommended.",
n, arg_scope == UNIT_FILE_SYSTEM ? "" : "--user ");
@@
-2785,7
+2788,7
@@
static void print_status_info(UnitStatusInfo *i) {
printf(" Status: \"%s\"\n", i->status_text);
if (i->control_group &&
printf(" Status: \"%s\"\n", i->status_text);
if (i->control_group &&
- (i->main_pid > 0 || i->control_pid > 0 || cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, i->control_group, false) == 0)) {
+ (i->main_pid > 0 || i->control_pid > 0 || cg_is_empty
_recursive
(SYSTEMD_CGROUP_CONTROLLER, i->control_group, false) == 0)) {
unsigned c;
printf(" CGroup: %s\n", i->control_group);
unsigned c;
printf(" CGroup: %s\n", i->control_group);
@@
-2916,7
+2919,7
@@
static int status_property(const char *name, DBusMessageIter *iter, UnitStatusIn
i->fragment_path = s;
else if (streq(name, "SourcePath"))
i->source_path = s;
i->fragment_path = s;
else if (streq(name, "SourcePath"))
i->source_path = s;
-#ifndef LEGACY
+#ifndef
NO
LEGACY
else if (streq(name, "DefaultControlGroup")) {
const char *e;
e = startswith(s, SYSTEMD_CGROUP_CONTROLLER ":");
else if (streq(name, "DefaultControlGroup")) {
const char *e;
e = startswith(s, SYSTEMD_CGROUP_CONTROLLER ":");
@@
-3935,9
+3938,9
@@
static int daemon_reload(DBusConnection *bus, char **args) {
/* There's always a fallback possible for
* legacy actions. */
r = -EADDRNOTAVAIL;
/* There's always a fallback possible for
* legacy actions. */
r = -EADDRNOTAVAIL;
- else if (
r == -ETIMEDOUT
&& streq(method, "Reexecute"))
- /* On reexecution, we expect a disconnect, not
- *
a
reply */
+ else if (
(r == -ETIMEDOUT || r == -ECONNRESET)
&& streq(method, "Reexecute"))
+ /* On reexecution, we expect a disconnect, not
a
+ * reply */
r = 0;
else if (r < 0)
log_error("Failed to issue method call: %s", bus_error_message(&error));
r = 0;
else if (r < 0)
log_error("Failed to issue method call: %s", bus_error_message(&error));