node-foreman icon indicating copy to clipboard operation
node-foreman copied to clipboard

Spawn children in their own process groups, and deliver SIGINT to each group

Open benweint opened this issue 1 year ago • 2 comments

This change fixes the issue described in https://github.com/strongloop/node-foreman/issues/176 by:

  1. Making nf spawn each child process in its own distinct process group via the detached option
  2. Delivering SIGINT signals to children to the entire process group, rather than just the direct child
  3. Ensuring that nf can handle the delivery of multiple consecutive SIGINT signals to itself without exiting prematurely

Changes 1 & 2 are inspired by the approach taken by goreman (a similar tool implemented in Go). Change 3 is somewhat unrelated, but was added in order to deal with the problem described in https://github.com/pnpm/pnpm/issues/7374 (sometimes, a parent process of nf might itself forward a SIGINT to nf, and the terminal might also deliver that signal).

benweint avatar Dec 17 '23 17:12 benweint

@benweint Would you be willing to push up a your fork to npm, appropriately renamed? This is an important project!

StrongLoop is totally dead, and their most popular tech (Loopback) appears to live on (after being acquired?) as a distinct organization. I don't think there is any hope of this repo getting any more attention... :(

pboling avatar Feb 22 '24 09:02 pboling

Perhaps foreman-ode... it works on multiple levels.

pboling avatar Feb 22 '24 09:02 pboling