diff options
author | Lennart Poettering <lennart@poettering.net> | 2012-04-13 23:24:47 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-04-13 23:29:59 +0200 |
commit | ecedd90fcdf647f9a7b56b4934b65e30b2979b04 (patch) | |
tree | 6e8bc8e509801a7c3801c1e77244df6dec72ac1c /src/core/execute.h | |
parent | 3b6d9a7c50bd7217a0ca80d39fd30decbb0c935a (diff) |
service: place control command in subcgroup control/
Previously, we were brutally and onconditionally killing all processes
in a service's cgroup before starting the service anew, in order to
ensure that StartPre lines cannot be misused to spawn long-running
processes.
On logind-less systems this has the effect that restarting sshd
necessarily calls all active ssh sessions, which is usually not
desirable.
With this patch control processes for a service are placed in a
sub-cgroup called "control/". When starting a service anew we simply
kill this cgroup, but not the main cgroup, in order to avoid killing any
long-running non-control processes from previous runs.
https://bugzilla.redhat.com/show_bug.cgi?id=805942
Diffstat (limited to 'src/core/execute.h')
-rw-r--r-- | src/core/execute.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/core/execute.h b/src/core/execute.h index fc4c71e534..428bb7c9bf 100644 --- a/src/core/execute.h +++ b/src/core/execute.h @@ -192,6 +192,7 @@ int exec_spawn(ExecCommand *command, bool confirm_spawn, struct CGroupBonding *cgroup_bondings, struct CGroupAttribute *cgroup_attributes, + const char *cgroup_suffix, pid_t *ret); void exec_command_done(ExecCommand *c); |