fix(funk-cluster): SIGKILL process fils hermes avant umount /srv/data

hermes-agent spawne des process Python qui survivent hors du cgroup
systemd après stop_service. Ils gardent des file descriptors ouverts sur
/srv/data (logs, state.db-shm) et bloquent le umount.

Ajout d'un lsof + kill -9 sur tous les process tenant /srv/data avant
sync + umount — garantit un démontage propre sans dépendre de systemd.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
alkatrazz 2026-05-14 01:09:53 +02:00
parent 0c37635802
commit a4a5fb2383

View file

@ -507,12 +507,22 @@ cmd_stop() {
echo ""
echo "[ storage-01 — démontage RAID5 /srv/data ]"
stop_service nfs-server
# Tuer les process fils qui survivent hors du cgroup systemd (ex: Python spawné par hermes)
local zombie_pids
zombie_pids=$(lsof /srv/data 2>/dev/null | awk 'NR>1 {print $2}' | sort -u)
if [ -n "$zombie_pids" ]; then
info "Process encore actifs sur /srv/data — SIGKILL..."
echo "$zombie_pids" | xargs kill -9 2>/dev/null || true
sleep 1
fi
sync
info "Flush buffers disque (sync)..."
if umount /srv/data 2>/dev/null; then
ok "/srv/data démonté proprement"
else
warn "umount /srv/data échoué — processus encore actif :"
warn "umount /srv/data échoué malgré SIGKILL — processus restants :"
lsof /srv/data 2>/dev/null | awk 'NR<=6' || true
warn "Extinction quand même — systemd finalisera le démontage"
fi