Skip to content

v1.5.0: Cleaner process shutdowns

Choose a tag to compare

@jdx jdx released this 16 Feb 23:25
· 227 commits to main since this release
Immutable release. Only release title and notes can be modified.
68fefa6

This release improves how pitchfork stops daemons and their child processes, making shutdown more reliable and eliminating orphaned processes.

Highlights

  • Process group-based shutdown — Pitchfork now spawns each daemon in its own process group via setsid() and uses killpg() to signal the entire group at once. This replaces the old approach of walking /proc to find children, which was prone to race conditions where a child could fork between the scan and the kill. Daemons that spawn multiple children (e.g. npm run dev) will now shut down cleanly and atomically. #239

  • SIGKILL escalation after SIGTERM — When a daemon doesn't respond to SIGTERM, pitchfork now automatically escalates to SIGKILL to ensure the process is terminated. No more stuck daemons that ignore graceful shutdown signals. #238 — thanks @gaojunran!

For full documentation, see pitchfork.jdx.dev.