assert(path);
+ /* First try to send SIG0 recursively to ensure all child cgroups can be killed. */
+ if (recurse)
+ r = cg_kill_recursive(path, /* sig= */ 0, CGROUP_IGNORE_SELF,
+ /* killed_pids= */ NULL, /* log_kill= */ NULL, /* userdata= */ NULL);
+ else
+ r = cg_kill(path, /* sig= */ 0, CGROUP_IGNORE_SELF,
+ /* killed_pids= */ NULL, /* log_kill= */ NULL, /* userdata= */ NULL);
+ if (r < 0)
+ return log_debug_errno(r, "Failed to send SIG0 to processes in cgroup '%s': %m", path);
+
if (dry_run) {
_cleanup_free_ char *cg_path = NULL;
if (c->pgscan == 0 && c->current_memory_usage == 0)
continue;
- /* First try killing recursively to ensure all child cgroups can be killed. */
- r = cg_kill_recursive(c->path, /* sig= */ 0, CGROUP_IGNORE_SELF, /* killed_pids= */ NULL,
- /* log_kill= */ NULL, /* userdata= */ NULL);
- if (r < 0)
- continue;
-
r = oomd_cgroup_kill(c->path, /* recurse= */ true, /* dry_run= */ dry_run);
if (r == -ENOMEM)
return r; /* Treat oom as a hard error */
if (c->swap_usage <= threshold_usage)
continue;
- /* First try killing recursively to ensure all child cgroups can be killed. */
- r = cg_kill_recursive(c->path, /* sig= */ 0, CGROUP_IGNORE_SELF, /* killed_pids= */ NULL,
- /* log_kill= */ NULL, /* userdata= */ NULL);
- if (r < 0)
- continue;
-
r = oomd_cgroup_kill(c->path, /* recurse= */ true, /* dry_run= */ dry_run);
if (r == -ENOMEM)
return r; /* Treat oom as a hard error */