From 06e35e10953d9da11beeae91422b13bf5e17491b Mon Sep 17 00:00:00 2001 From: lrnselfreliance <33263708+lrnselfreliance@users.noreply.github.com> Date: Thu, 15 Oct 2026 18:10:17 -0600 Subject: [PATCH] Archive container reaps its zombie processes (#837) The archive service is PID 1 in its container and never reaps orphans. check_output kills each command's process group, so every archive leaves chrome, cat, and node grandchildren behind as zombies. A long-running container accumulated hundreds of them, counting against its PID limit. init: true runs tini as PID 1, matching the web container. Co-authored-by: Claude Opus 5.5 --- docker-compose.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 52098b48..eb1d2319 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -66,6 +66,10 @@ services: - './docker/archive/main.py:/app/main.py' ports: - '8083:8080' + # The Sanic app is PID 1 and reaps nothing; check_output kills each command's process group, + # and the killed grandchildren (chrome, cat, node) are orphaned to it as zombies (several per + # archive). init runs tini as PID 1 to reap them. + init: true healthcheck: test: [ 'CMD-SHELL', 'curl http://127.0.0.1:8080/' ] interval: 2m