chiark / gitweb /
core: introduce new KillMode=mixed which sends SIGTERM only to the main process,...
[elogind.git] / src / core / unit.c
index e5ea994e5473a20cf47c355cad13649ad1d77e85..0ad679ba622f6154f742a9cacee2a794c1872a24 100644 (file)
@@ -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);