This repository has been archived on 2026-08-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
forge-retired/stop_dharma.sh
T
Will Anderson 0a15e2fa42 DHARMA network: per-soul Engram instances (8801–8819)
Each soul now gets their own isolated Engram process with a dedicated data
directory (imprints/<slug>/), port, and API key — the DHARMA network.
Neuron's Engram at 8742 is never touched.

- registry.json: add engram_db_path, engram_port, engram_url to all 19 entries
  (Bobby Anderson 8801 → Helen Keller 8819)
- launch_dharma.sh: start all 19 soul Engrams in background; supports
  single-slug filter and skip-if-running detection
- stop_dharma.sh: graceful shutdown via PID file, falls back to port scan
- reinstall_imprints.py: bulk reinstall — starts each Engram temporarily,
  installs seed, records new root_id, stops; supports --slug and --dry-run
- src/install.el: resolves soul's engram_url from registry (never 8742);
  guards against accidental writes to Neuron's shared Engram
- src/summon.el: reads engram_url per-soul from registry; passes it to soul
  server in POST body so soul connects to the right Engram; supports
  both single-soul (engram_url) and multi-soul (engram_urls array) payloads
2026-05-03 02:52:01 -05:00

54 lines
1.4 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# DHARMA network — stop all running soul Engrams.
# Reads PIDs from /tmp/dharma-pids written by launch_dharma.sh.
# Falls back to killing by port if PID file is missing.
#
# Usage:
# ./stop_dharma.sh stop all soul Engrams
# ./stop_dharma.sh <slug> stop a single soul by slug
set -euo pipefail
PID_FILE=/tmp/dharma-pids
FILTER="${1:-}"
stopped=0
missed=0
# Kill via PID file if it exists
if [ -f "$PID_FILE" ]; then
while IFS=' ' read -r pid slug port; do
[ -z "$pid" ] && continue
if [ -n "$FILTER" ] && [ "$slug" != "$FILTER" ]; then
continue
fi
if kill -0 "$pid" 2>/dev/null; then
kill "$pid"
echo "[dharma] stopped $slug (pid=$pid port=$port)"
stopped=$((stopped + 1))
else
echo "[dharma] $slug (pid=$pid) already gone"
fi
done < "$PID_FILE"
if [ -z "$FILTER" ]; then
rm -f "$PID_FILE"
fi
else
echo "[dharma] no PID file at $PID_FILE — killing by port scan"
# Fall back: kill anything on ports 88018819
for port in $(seq 8801 8819); do
pids=$(lsof -ti tcp:"$port" 2>/dev/null || true)
if [ -n "$pids" ]; then
echo "[dharma] killing port $port (pids: $pids)"
echo "$pids" | xargs kill 2>/dev/null || true
stopped=$((stopped + 1))
fi
done
fi
echo ""
echo "[dharma] stopped=$stopped missed=$missed"