Problème de 'Zombie Processes' dans un container Python

zbruneau 26/11/2024
RÉSOLU
zbruneau
Auteur Actif
Avatar de zbruneau
zbruneau
Auteur Actif

yo, j'ai remarqué un truc bizarre sur mon serveur de prod. j'ai un container qui tourne depuis une semaine et quand je fais un docker top, je vois des centaines de process `[python] `. ça finit par bouffer toute la table des pid et je peux plus rien lancer sur la machine

PID    USER      TIME  COMMAND
1      root      0:05  python main.py
42     root      0:00  [python] 
43     root      0:00  [python] 

pourtant mon script fait juste des appels subprocess classiques...

26/11/2024 à 08:06

3 commentaires

isaac92
Membre Actif
Avatar de isaac92
isaac92
Membre Actif

c'est parce que ton script python tourne en PID 1 et il sait pas 'récolter' (reap) les process fils qui se terminent. ils restent en état zombie

27/11/2024 à 05:28
delmas-zoe
Membre
Avatar de delmas-zoe
delmas-zoe
Membre

exact. le PID 1 a un rôle spécial sous Linux. utilise tini comme init process dans ton Dockerfile, il va gérer les signaux et le nettoyage des zombies à ta place

# installe tini et change l'entrypoint
entrypoint ["/sbin/tini", "--", "python", "main.py"]
Modifié le 23/05/2026 à 16:20
zbruneau
Auteur Actif
Avatar de zbruneau
zbruneau
Auteur Actif

ajouté tini et effectivement tous les process defunct disparaissent direct après exécution. propre !

28/11/2024 à 20:14

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire