summaryrefslogtreecommitdiff
path: root/src/cgroup.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-03-03 23:55:30 +0100
committerLennart Poettering <lennart@poettering.net>2011-03-03 23:55:30 +0100
commit430c18ed7f576fd9041b0a02e7c4210bdd020a25 (patch)
tree0ea2aa6c3d7c434c1c8b5dd2c91ca7b54a7771c4 /src/cgroup.c
parent2b590e135f53a1bd3e771bdc555f7bf28c4cd232 (diff)
kill: always send SIGCONT after SIGTERM
When we kill a process to terminate it make sure to send SIGCONT to ensure it is unpaused and processes the signal.
Diffstat (limited to 'src/cgroup.c')
-rw-r--r--src/cgroup.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/cgroup.c b/src/cgroup.c
index 729cc75e67..b75fe0bee0 100644
--- a/src/cgroup.c
+++ b/src/cgroup.c
@@ -140,7 +140,7 @@ int cgroup_bonding_install_list(CGroupBonding *first, pid_t pid) {
return 0;
}
-int cgroup_bonding_kill(CGroupBonding *b, int sig, Set *s) {
+int cgroup_bonding_kill(CGroupBonding *b, int sig, bool sigcont, Set *s) {
assert(b);
assert(sig >= 0);
@@ -148,10 +148,10 @@ int cgroup_bonding_kill(CGroupBonding *b, int sig, Set *s) {
if (!b->realized || !b->ours)
return 0;
- return cg_kill_recursive(b->controller, b->path, sig, true, false, s);
+ return cg_kill_recursive(b->controller, b->path, sig, sigcont, true, false, s);
}
-int cgroup_bonding_kill_list(CGroupBonding *first, int sig, Set *s) {
+int cgroup_bonding_kill_list(CGroupBonding *first, int sig, bool sigcont, Set *s) {
CGroupBonding *b;
Set *allocated_set = NULL;
int ret = -EAGAIN, r;
@@ -161,7 +161,7 @@ int cgroup_bonding_kill_list(CGroupBonding *first, int sig, Set *s) {
return -ENOMEM;
LIST_FOREACH(by_unit, b, first) {
- if ((r = cgroup_bonding_kill(b, sig, s)) < 0) {
+ if ((r = cgroup_bonding_kill(b, sig, sigcont, s)) < 0) {
if (r == -EAGAIN || r == -ESRCH)
continue;