diff options
-rw-r--r-- | src/cgroup-util.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/cgroup-util.c b/src/cgroup-util.c index ccc94f86a1..4cf184ae1b 100644 --- a/src/cgroup-util.c +++ b/src/cgroup-util.c @@ -321,16 +321,17 @@ int cg_kill_recursive_and_wait(const char *controller, const char *path, bool re assert(controller); /* This safely kills all processes; first it sends a SIGTERM, - * then checks 8 times after 50ms whether the group is - * now empty, and finally kills everything that is left with - * SIGKILL */ + * then checks 8 times after 200ms whether the group is now + * empty, then kills everything that is left with SIGKILL and + * finally checks 5 times after 200ms each whether the group + * is finally empty. */ - for (i = 0; i < 10; i++) { + for (i = 0; i < 15; i++) { int sig, r; if (i <= 0) sig = SIGTERM; - else if (i >= 9) + else if (i == 9) sig = SIGKILL; else sig = 0; @@ -338,7 +339,7 @@ int cg_kill_recursive_and_wait(const char *controller, const char *path, bool re if ((r = cg_kill_recursive(controller, path, sig, true, rem, NULL)) <= 0) return r; - usleep(50 * USEC_PER_MSEC); + usleep(200 * USEC_PER_MSEC); } return 0; |