diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index cca1fbbea..85798e28d 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -777,6 +777,11 @@ static int compare_unit_file_list(const void *a, const void *b) { static bool output_show_unit_file(const UnitFileList *u) { const char *dot; + if (!strv_isempty(arg_states)) { + if (!strv_find(arg_states, unit_file_state_to_string(u->state))) + return false; + } + return !arg_types || ((dot = strrchr(u->path, '.')) && strv_find(arg_types, dot+1)); }