From 73092e6ad7be18a2a11b20a0e934f370a76544b8 Mon Sep 17 00:00:00 2001 From: rays Date: Sat, 19 Sep 2026 15:12:08 +0000 Subject: [PATCH] Stop a hand-run daemon by its PID, not pkill -x ipx (#38) On Tower the host sees the processes inside containers, so the pkill -x ipx that CLAUDE.md recommended would have killed production's daemon in the iPodderX container along with the test one. CLAUDE.md now says to stop a hand-run daemon by its own PID; docs/cli.md keeps pkill -x for a plain install and warns about the container case. Co-Authored-By: Claude Opus 5 --- CLAUDE.md | 6 ++++-- docs/cli.md | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 595a357..0bf6792 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -73,8 +73,10 @@ container restarts on its own after a reboot. Before the container, ipx ran by hand in code-server, with its files in `/config/.config/ipx/` and `/config/.local/share/ipx/`. Those are still there and the container does not read them. If you run -a daemon by hand for testing, stop it with **`pkill -x ipx`, never `pkill -f ipx`**. `-f` matches -the shell running the command and kills the session (exit 144). This has happened more than once. +a daemon by hand for testing, **stop it by its own PID**: start it with `& echo $! > pid` and +`kill $(cat pid)`. Never `pkill -x ipx`: Tower sees the container's processes, so it kills +production's daemon as well (issue #38). Never `pkill -f ipx` either: `-f` matches the shell +running the command and kills the session (exit 144), which has happened more than once. ## Before you touch the page diff --git a/docs/cli.md b/docs/cli.md index 8624498..6efaf37 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -80,7 +80,9 @@ To kill it, match the binary exactly: pkill -x ipx ``` -`pkill -f ipx` matches the shell running the command too, and kills your own session. +`pkill -f ipx` matches the shell running the command too, and kills your own session. On a machine +that also runs ipx in a container, `pkill -x ipx` stops that one as well, since the host sees a +container's processes: stop the one you started by its PID instead (`kill `). ## Talking to it directly