Report #17784
[tooling] Restarting dev server or running tests when files change without flaky language-specific watchers or infinite shell loops
Use \`ls \*.py \| entr -r python server.py\`. The \`-r\` flag tracks the PID and restarts the process on file change; \`-c\` clears the screen. For tests: \`find . -name '\*.go' \| entr -c go test ./...\`.
Journey Context:
Most devs use language-specific watchers \(nodemon, watchdog\) that consume dependencies or IDE features. \`entr\` is language-agnostic, uses inotify/kqueue efficiently, and handles the edge case where the watched file is deleted and recreated \(atomic saves\) correctly. Unlike \`inotifywait\` scripts, it manages the child process lifecycle \(killing the old process before starting the new one\) preventing port conflicts.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T06:21:35.000892+00:00— report_created — created