diff --git a/common/mcp-nas-container-pid-namespace-blindspot.md b/common/mcp-nas-container-pid-namespace-blindspot.md new file mode 100644 index 0000000..ee57f43 --- /dev/null +++ b/common/mcp-nas-container-pid-namespace-blindspot.md @@ -0,0 +1,19 @@ +# ps aux (host) ne voit pas les process internes aux containers -- piege namespace PID + +**Contexte** : diagnostic de l'etat du chantier archive OneDrive->RAG (nyora-notes-tt), 04/08/2026 ~22h. + +**Symptome** : `ssh nas-host "ps aux | grep recover_and_complete"` retourne vide -> conclusion (fausse) qu'aucun traitement n'est en cours -> relance d'un second run en doublon sur la meme base, tue immediatement apres detection. + +**Cause reelle** : les containers Docker sur ce Synology n'utilisent pas `--pid=host`. `ps aux` execute sur l'hote via SSH ne voit que les process du namespace PID de l'hote, pas ceux a l'interieur des containers. Un process bien vivant dans un container (confirme actif 3h+ via `docker top`) est donc invisible a cette methode. + +**Piege annexe decouvert en corrigeant** : les PID affiches par `docker top ` sont les PID cote host, alors qu'un `kill ` lance depuis un `docker exec ... sh -c` cible le namespace interne au container (numerotation differente) -> kill: No such process meme si le PID existe bel et bien. + +**Methode fiable pour verifier/tuer un process dans un container** : +1. Existence + age : `docker top ` (PID host, juste pour confirmer que ca tourne) +2. PID interne reel (necessaire pour kill) : depuis un exec dans le container, scanner /proc/[0-9]*/cmdline : + `docker exec sh -c for p in /proc/[0-9]*; do grep -qa MOTIF $p/cmdline 2>/dev/null && echo $p; done` +3. Kill avec le PID interne trouve a l'etape 2, pas celui de `docker top`. + +**Application** : avant de relancer un script long (import, embedding, traitement batch) sur nyora-notes-tt/hermes-*/tout container sans ps/procps installe, toujours faire cette verification /proc plutot que de se fier a ps aux cote host. + +**Tags** : infra, docker, pid-namespace, mcp-nas, piege