X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Funit.c;h=0ad679ba622f6154f742a9cacee2a794c1872a24;hp=e5ea994e5473a20cf47c355cad13649ad1d77e85;hb=58ea275a68cd242ad60161bcb7582614d1d89f13;hpb=373f14222e6ff11ad0b129b033e01f75f7c504f3 diff --git a/src/core/unit.c b/src/core/unit.c index e5ea994e5..0ad679ba6 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -2966,7 +2966,7 @@ int unit_kill_context( } } - if (c->kill_mode == KILL_CONTROL_GROUP && u->cgroup_path) { + if ((c->kill_mode == KILL_CONTROL_GROUP || (c->kill_mode == KILL_MIXED && sigkill)) && u->cgroup_path) { _cleanup_set_free_ Set *pid_set = NULL; /* Exclude the main/control pids from being killed via the cgroup */ @@ -2980,6 +2980,7 @@ int unit_kill_context( log_warning_unit(u->id, "Failed to kill control group: %s", strerror(-r)); } else if (r > 0) { wait_for_exit = true; + if (c->send_sighup) { set_free(pid_set);