mirror of
https://github.com/systemd/systemd.git
synced 2024-11-05 06:52:22 +03:00
Merge pull request #2430 from lnykryn/is-active-failed
systemctl: is-active/failed should return 0 if at least one unit is in given state Previously: [lnykryn@notas lnykryn-systemd(is-active-failed)]$ systemctl is-failed fail cups; echo $? failed active 1 now: [lnykryn@notas lnykryn-systemd(is-active-failed)]$ ./systemctl is-failed fail cups; echo $? failed active 0
This commit is contained in:
commit
7b213864af
@ -3153,6 +3153,7 @@ static int check_unit_generic(int code, const char *good_states, char **args) {
|
||||
sd_bus *bus;
|
||||
char **name;
|
||||
int r;
|
||||
bool found = false;
|
||||
|
||||
r = acquire_bus(BUS_MANAGER, &bus);
|
||||
if (r < 0)
|
||||
@ -3168,11 +3169,13 @@ static int check_unit_generic(int code, const char *good_states, char **args) {
|
||||
state = check_one_unit(bus, *name, good_states, arg_quiet);
|
||||
if (state < 0)
|
||||
return state;
|
||||
if (state == 0)
|
||||
r = code;
|
||||
if (state > 0)
|
||||
found = true;
|
||||
}
|
||||
|
||||
return r;
|
||||
/* use the given return code for the case that we won't find
|
||||
* any unit which matches the list */
|
||||
return found ? 0 : code;
|
||||
}
|
||||
|
||||
static int check_unit_active(int argc, char *argv[], void *userdata) {
|
||||
|
Loading…
Reference in New Issue
Block a user