From 2ae0508e6dab3bb61893132fa936c1f62af8aa29 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 16 Oct 2020 17:16:23 +0200 Subject: [PATCH] core: correct handling of "systemctl kill --kill-who=main-fail" --kill-who=main-fail never worked correctly, due to a copy and paste mistake in ac5e3a505e49c80b56c971a8fc13bacac961640d, where the same item was listed twice. The mistake was later noticed, but fixed incorrectly, in 201f0c916d8f65ad2595a651b1371fcd39a4cf55. Let's list all *-fail types correctly, finally. And while we are at it, add a nice comment and generate a prettier D-Bus error about this. --- src/core/unit.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/unit.c b/src/core/unit.c index 052c11c00f4..f3d4731a46a 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -4381,8 +4381,9 @@ int unit_kill_common( killed = true; } - if (r == 0 && !killed && IN_SET(who, KILL_ALL_FAIL, KILL_CONTROL_FAIL)) - return -ESRCH; + /* If the "fail" versions of the operation are requested, then complain if the set of processes we killed is empty */ + if (r == 0 && !killed && IN_SET(who, KILL_ALL_FAIL, KILL_CONTROL_FAIL, KILL_MAIN_FAIL)) + return sd_bus_error_set_const(error, BUS_ERROR_NO_SUCH_PROCESS, "No matching processes to kill"); return r; } -- 2.47.3