# Stop HTTP Registry

> Stop the background HTTP registry server started by /start-http-registry — TaskStop / KillShell by the recorded task ID, plus a /proc cmdline-scan fallback for minimal-tool sandboxes with no ps/lsof/pkill/fuser. Referenced by every warp deploy/update skill that starts the registry.

- Skill: `hyperlane-xyz/stop-http-registry` (Agent Skill)
- Install (CLI): `npx skillmds@latest add hyperlane-xyz/stop-http-registry`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hyperlane-xyz/stop-http-registry/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: hyperlane-xyz (https://skillmd.com/u/hyperlane-xyz)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hyperlane-xyz/stop-http-registry

---


# Stop HTTP Registry Server

Stop the background HTTP registry started via `/start-http-registry`. Always stop it at the end of the skill — even on failure paths — so no background process is left running.

1. **Primary:** `TaskStop` (or `KillShell`) with the task/shell ID recorded when the registry was started.
2. **Fallback (minimal-tool sandboxes):** if `TaskStop` doesn't clean up the underlying process and `ps` / `lsof` / `pkill` / `fuser` aren't available, scan `/proc` for the registry's cmdline and kill it:

   ```bash
   # Find PIDs matching the registry process — exclude the scanning shell itself
   SELF_PID=$$
   for pid in $(ls /proc | grep -E '^[0-9]+$'); do
     [ "$pid" = "$SELF_PID" ] && continue
     if grep -aql 'http-registry-server\|start:http-registry' /proc/$pid/cmdline 2>/dev/null; then
       echo "killing http-registry pid=$pid"
       kill "$pid" 2>/dev/null || true
     fi
   done
   ```

   Always run the fallback after `TaskStop` regardless — it is idempotent if the process is already gone.

## Consumers

`/warp-deploy-init-route`, `/warp-deploy-update-owners`, `/warp-update`, `/warp-update-extend`, `/warp-update-resolve-artifacts` — every skill that starts the HTTP registry.

