mirror of
https://github.com/systemd/systemd.git
synced 2024-11-06 08:26:52 +03:00
systemctl: return an error code is status fails
This got lost in the refactoring in f74294c1da
.
Also make sure that the return code corresponds to the *first* failure,
not the last.
https://lists.fedoraproject.org/pipermail/devel/2014-May/199080.html
This commit is contained in:
parent
b90b025af1
commit
5bb75bc745
Notes:
Lennart Poettering
2014-05-24 11:06:27 +08:00
Backport: bugfix
@ -4285,7 +4285,7 @@ static int show_all(
|
|||||||
_cleanup_free_ UnitInfo *unit_infos = NULL;
|
_cleanup_free_ UnitInfo *unit_infos = NULL;
|
||||||
const UnitInfo *u;
|
const UnitInfo *u;
|
||||||
unsigned c;
|
unsigned c;
|
||||||
int r;
|
int r, ret = 0;
|
||||||
|
|
||||||
r = get_unit_list(bus, NULL, NULL, &unit_infos, 0, &reply);
|
r = get_unit_list(bus, NULL, NULL, &unit_infos, 0, &reply);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
@ -4307,9 +4307,11 @@ static int show_all(
|
|||||||
r = show_one(verb, bus, p, show_properties, new_line, ellipsized);
|
r = show_one(verb, bus, p, show_properties, new_line, ellipsized);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
else if (r > 0 && ret == 0)
|
||||||
|
ret = r;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int show_system_status(sd_bus *bus) {
|
static int show_system_status(sd_bus *bus) {
|
||||||
@ -4431,7 +4433,12 @@ static int show(sd_bus *bus, char **args) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
show_one(args[0], bus, unit, show_properties, &new_line, &ellipsized);
|
r = show_one(args[0], bus, unit, show_properties,
|
||||||
|
&new_line, &ellipsized);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
else if (r > 0 && ret == 0)
|
||||||
|
ret = r;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strv_isempty(patterns)) {
|
if (!strv_isempty(patterns)) {
|
||||||
@ -4448,7 +4455,12 @@ static int show(sd_bus *bus, char **args) {
|
|||||||
if (!unit)
|
if (!unit)
|
||||||
return log_oom();
|
return log_oom();
|
||||||
|
|
||||||
show_one(args[0], bus, unit, show_properties, &new_line, &ellipsized);
|
r = show_one(args[0], bus, unit, show_properties,
|
||||||
|
&new_line, &ellipsized);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
else if (r > 0 && ret == 0)
|
||||||
|
ret = r;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user